使用LauchPopupListener过滤lov数据

九月 14, 2009 in Oracle 融合中间件

概述

在实际应用中,lov(list of value)中显示的数据往往会根据页面上的某些条件进行过滤,此时,可以应用lauchpopuplistener来实现该功能。

实现

1、基于Employees表和Jobs表创建EO/VO/AM,并设置Employees对应的VO中的JobId使用Jobs对应的VO作为数据源。

2、在Jobs表对应的VO上添加绑定变量,并修改SQL语句,将该绑定变量应用到SQL语句中,具体代码如下:

1
2
3
4
5
6
  SELECT Jobs.JOB_ID, 
         Jobs.JOB_TITLE, 
	 Jobs.MIN_SALARY, 
	 Jobs.MAX_SALARY
    FROM JOBS Jobs
   WHERE Jobs.MIN_SALARY>:ls

3、为Employees对应的VO创建页面,并同时生成其backingbean,设置JobId属性中的LaunchPopupListener为刚创建成功的backingbean中的方法,这里为filterlov()。

4、在backingbean中的filterlov()方法中添加代码,完成数据过滤,具体代码如下:

1
2
3
4
5
6
public void filterlov(LaunchPopupEvent launchPopupEvent) {
  BindingContext bctx = BindingContext.getCurrent();
  BindingContainer bindings = bctx.getCurrentBindingsEntry();
  FacesCtrlLOVBinding lov = (FacesCtrlLOVBinding)bindings.get("JobId");
  lov.getListIterBinding().getViewObject().setNamedWhereClauseParam("ls", 400);
}

5、保存以上设置,运行页面进行测试。

最终运行结果,完成了对于MIN_SALARY大于4000的JobId的过滤:

相关代码:howtofilterlov.rar

相关文章:

  1. 在ADF中使用InlinePopup
  2. 利用Poll实现Table自动刷新

4 responses to 使用LauchPopupListener过滤lov数据

  1. 强烈支持!

  2. 呵呵,一定,手头上还有很多,正在整理中…
    我正构思录制ADF的系列视频,希望多支持啊

  3. 强烈要求11多发Oracle ADF的技术文章

Leave a reply

You must be logged in to post a comment.