Welcome 微信登录

首页 / 数据库 / MySQL / ADF中如何将两个独立的LOV实现级联

在网上看到很多基于一个VO中的两个Atttribute的LOV实现级联的例子,本文描述如何将两个独立的LOV实现级联,以Oracle实例数据库HR中的DEPARTMENTS和LOCATIONS两个表为例,根据DEPARTMENT中的列location_id过滤department列表的值。程序包请到以下连接下载免费下载地址在 http://linux.linuxidc.com/用户名与密码都是www.linuxidc.com具体下载目录在 /2012年资料/2月/23日/ADF中如何将两个独立的LOV实现级联 /1.建立ADF项目DepartmentView的Query如下[sql]
  1. SELECT Departments.DEPARTMENT_ID,   
  2. Departments.DEPARTMENT_NAME,   
  3. Departments.MANAGER_ID,   
  4. Departments.LOCATION_ID  
  5. FROM DEPARTMENTS Departments  
  6. WHERE (Departments.LOCATION_ID = :locationId or :locationId is null)  
locationId的值设置为adf.context.requestScope.locationIdvlaueType选择Expression 2.建Backing Bean
[java]
  1. package view;  
  2.   
  3. import javax.faces.component.UIComponent;  
  4. import javax.faces.event.ValueChangeEvent;  
  5.   
  6. import oracle.adf.model.binding.DCIteratorBinding;  
  7. import oracle.adf.share.ADFContext;  
  8.   
  9. import oracle.jbo.Row;  
  10. import oracle.jbo.server.ViewRowImpl;  
  11. import oracle.jbo.uicli.binding.JUCtrlListBinding;  
  12. import oracle.jbo.uicli.binding.JUIteratorBinding;  
  13.   
  14. public class CascadeLOVBean {  
  15.     /** 
  16.      * 要获取触发LOV的属性 
  17.      */  
  18.     private String attributeName;   
  19.     /** 
  20.      * 要传的参数名 
  21.      */  
  22.     private String parameterName;  
  23.     /** 
  24.      * 触发LOV的List Binding 
  25.      */  
  26.     private JUCtrlListBinding listBinding;  
  27.     /** 
  28.      * 被触发LOV的Iterator Binding 
  29.      */  
  30.     private DCIteratorBinding iteratorBinding;  
  31.       
  32.       
  33.     public CascadeLOVBean() {  
  34.         super();  
  35.     }  
  36.     //获取下触发下拉列表的值,并将值放入Request Scope,VO中使用Groovy表达式取得   
  37.     public void valueChangeListener(ValueChangeEvent valueChangeEvent) {  
  38.         if (valueChangeEvent.getNewValue() != valueChangeEvent.getOldValue()) {  
  39.             Integer newValue = (Integer)valueChangeEvent.getNewValue();  
  40.             ViewRowImpl row = (ViewRowImpl)listBinding.getValueFromList(newValue);  
  41.             Object paramValue = row.getAttribute(attributeName);   
  42.             ADFContext.getCurrent().getRequestScope().put(parameterName, paramValue);  
  43.             iteratorBinding.executeQuery();  
  44.         }  
  45.     }  
  46.       
  47.     public void setListBinding(JUCtrlListBinding listBinding) {  
  48.         this.listBinding = listBinding;  
  49.     }  
  50.   
  51.     public JUCtrlListBinding getListBinding() {  
  52.         return listBinding;  
  53.     }  
  54.   
  55.     public void setIteratorBinding(DCIteratorBinding iteratorBinding) {  
  56.         this.iteratorBinding = iteratorBinding;  
  57.     }  
  58.   
  59.     public DCIteratorBinding getIteratorBinding() {  
  60.         return iteratorBinding;  
  61.     }  
  62.   
  63.     public void setAttributeName(String attributeName) {  
  64.         this.attributeName = attributeName;  
  65.     }  
  66.   
  67.     public String getAttributeName() {  
  68.         return attributeName;  
  69.     }  
  70.   
  71.     public void setParameterName(String parameterName) {  
  72.         this.parameterName = parameterName;  
  73.     }  
  74.   
  75.     public String getParameterName() {  
  76.         return parameterName;  
  77.     }  
  78. }  
  • 1
  • 2
  • 下一页
ORA-01652无法通过256(在表空间temp中)扩展temp段Oracle创建百万行数据表之效率分析相关资讯      oracle数据库教程 
  • Oracle raw数据类型介绍  (01/29/2013 10:05:53)
  • 监听器注册与ORA-12514 错误分析  (11/13/2012 14:30:08)
  • Oracle SQL的cursor理解  (11/13/2012 14:16:17)
  • Oracle 如何强制刷新Buffer Cache  (01/29/2013 10:02:46)
  • dblink致Oracle库的SCN变成两库的  (11/13/2012 14:24:41)
  • Linux操作系统下完全删除Oracle数  (11/13/2012 08:25:52)
本文评论 查看全部评论 (0)
表情: 姓名: 字数