2012年8月2日星期四

ADF_190:使用LaunchPopupListener过滤Input Text with LOV(4)

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

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

重要步骤说明:

1. Managed Bean 代码

public void jobIdLaunchPopupListener(LaunchPopupEvent launchPopupEvent) {
BindingContainer bindings = getBindings();
JUCtrlListBinding lov = (JUCtrlListBinding)bindings.get("JobId");
ViewCriteriaManager vcm = lov.getListIterBinding().getViewObject().getViewCriteriaManager();
vcm.removeViewCriteria(vcm.DFLT_VIEW_CRITERIA_NAME);
ViewCriteria vc = new ViewCriteria(lov.getListIterBinding().getViewObject());
vc.setName(vcm.DFLT_VIEW_CRITERIA_NAME);
ViewCriteriaRow vcr1 = new ViewCriteriaRow(vc);

vcr1.setAttribute("MinSalary", "> 5000");
vcr1.setAttribute("MaxSalary", "< 15000");
vc.addRow(vcr1);
lov.getListIterBinding().getViewObject().applyViewCriteria(vc);
}


2. 运行
和第2个实验一样,显示MinSalary>5000且MaxSalary<15000的记录。

Project 下载:ADF_LOV_InputText(7).7z

没有评论: