2012年8月2日星期四

ADF_188:使用LaunchPopupListener过滤Input Text with LOV(2)

运行环境:JDeveloper 11.1.2.2.0 + Oracle Database 10g Express Edition 10.2.0.1。

使用Input Text with LOV组件时,点击按钮会显示LOV的查询结果。
如果需要通过程序设置查询条件,可以定制LaunchPopupPopupListener。
与上一个实验不同的地方是:在LOV对应的VO上没有Where子句和参数定义。
也就是说,通过程序动态设置Where子句。

1. Managed Bean的代码
    public void jobIdLaunchPopupListener(LaunchPopupEvent launchPopupEvent) {
        BindingContainer bindings = getBindings();
        JUCtrlListBinding lov = (JUCtrlListBinding)bindings.get("JobId");
        String whereClause = "Min_Salary > 5000 AND Max_Salary < 15000";
        lov.getListIterBinding().getViewObject().setWhereClause(whereClause);
    }

说明:这里的Min_Salary和Max_Salary是数据库表中字段的名称,不是VO中字段的名称。

2. 运行
显示的查询结果是MinSalary>5000且MaxSalary<15000 br="">

Project 下载:ADF_LOV_InputText(5).7z

参考文献:
1. http://jobinesh.blogspot.com/2009/08/tips-on-lov-runtime.html
2. https://blogs.oracle.com/jdevotnharvest/entry/how_to_dynamically_filter_model

没有评论: