在网上看到很多基于一个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] - SELECT Departments.DEPARTMENT_ID,
- Departments.DEPARTMENT_NAME,
- Departments.MANAGER_ID,
- Departments.LOCATION_ID
- FROM DEPARTMENTS Departments
- WHERE (Departments.LOCATION_ID = :locationId or :locationId is null)
locationId的值设置为adf.context.requestScope.locationIdvlaueType选择Expression 2.建Backing Bean
[java] - package view;
-
- import javax.faces.component.UIComponent;
- import javax.faces.event.ValueChangeEvent;
-
- import oracle.adf.model.binding.DCIteratorBinding;
- import oracle.adf.share.ADFContext;
-
- import oracle.jbo.Row;
- import oracle.jbo.server.ViewRowImpl;
- import oracle.jbo.uicli.binding.JUCtrlListBinding;
- import oracle.jbo.uicli.binding.JUIteratorBinding;
-
- public class CascadeLOVBean {
- /**
- * 要获取触发LOV的属性
- */
- private String attributeName;
- /**
- * 要传的参数名
- */
- private String parameterName;
- /**
- * 触发LOV的List Binding
- */
- private JUCtrlListBinding listBinding;
- /**
- * 被触发LOV的Iterator Binding
- */
- private DCIteratorBinding iteratorBinding;
-
-
- public CascadeLOVBean() {
- super();
- }
- //获取下触发下拉列表的值,并将值放入Request Scope,VO中使用Groovy表达式取得
- public void valueChangeListener(ValueChangeEvent valueChangeEvent) {
- if (valueChangeEvent.getNewValue() != valueChangeEvent.getOldValue()) {
- Integer newValue = (Integer)valueChangeEvent.getNewValue();
- ViewRowImpl row = (ViewRowImpl)listBinding.getValueFromList(newValue);
- Object paramValue = row.getAttribute(attributeName);
- ADFContext.getCurrent().getRequestScope().put(parameterName, paramValue);
- iteratorBinding.executeQuery();
- }
- }
-
- public void setListBinding(JUCtrlListBinding listBinding) {
- this.listBinding = listBinding;
- }
-
- public JUCtrlListBinding getListBinding() {
- return listBinding;
- }
-
- public void setIteratorBinding(DCIteratorBinding iteratorBinding) {
- this.iteratorBinding = iteratorBinding;
- }
-
- public DCIteratorBinding getIteratorBinding() {
- return iteratorBinding;
- }
-
- public void setAttributeName(String attributeName) {
- this.attributeName = attributeName;
- }
-
- public String getAttributeName() {
- return attributeName;
- }
-
- public void setParameterName(String parameterName) {
- this.parameterName = parameterName;
- }
-
- public String getParameterName() {
- return parameterName;
- }
- }
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)