使用ADF-BC 实现查询功能之六:使用Popup组件实现全字段查询
2014-08-20 19:21
696 查看
开发环境:JDevloper 11.1.2.1.0+ Oracle Database 10g Express Edition 10.2.0.1。
在《使用ADF-BC
实现查询功能之一:All Queriable Attributes》中,全字段查询界面和结果是在同一个页面。
实际使用中,有些客户希望把查询界面放到popup组件中,查询完毕后,页面刷新显示查询结果。
这里我们可以使用一些小技巧,不需要很大的改动就可以实现该功能。
重要步骤说明:
1. 创建页面,添加查询按钮,点击后弹出popup组件
2. 创建popup组件
(1)在其中添加dialog组件,其中Type=none,表明不需要任何OK或Cancel按钮。
(2)在dialog组件中,拖放All Queriable Attributes生成全字段查询Panel,其内容如下:
稍后我们会做些改动。
3. 创建一个Managed Bean
(1)把table组件绑定到Managed Bean中的一个属性,这样可以在代码中操作table组件。
(2)把popup组件绑定到Managed Bean中的一个属性,这样可以在代码中操作table组件。
(3)修改queryListener,将其指向Managed Bean中的一个方法: queryListener="#{myBackingBean.queryListener}"。
queryListener方法内容如下:
4. 运行页面
点击Search按钮,弹出popup窗口,输入条件,回车确定。
Table将显示符合查询条件的记录。
5. 小结
使用JSFUtils.invokeMethodExpression可以在代码中调用原来绑定在组件上的Listener事件。
这是一种定制组件Listener事件的方式:在调用原有Listener方法的前后加入自己的逻辑。
Project 下载:ADF_QueryInPopup.7z
http://maping930883.blogspot.com/2010/04/adf066adf-bc-popup.html
在《使用ADF-BC
实现查询功能之一:All Queriable Attributes》中,全字段查询界面和结果是在同一个页面。
实际使用中,有些客户希望把查询界面放到popup组件中,查询完毕后,页面刷新显示查询结果。
这里我们可以使用一些小技巧,不需要很大的改动就可以实现该功能。
重要步骤说明:
1. 创建页面,添加查询按钮,点击后弹出popup组件
2. 创建popup组件
(1)在其中添加dialog组件,其中Type=none,表明不需要任何OK或Cancel按钮。
(2)在dialog组件中,拖放All Queriable Attributes生成全字段查询Panel,其内容如下:
<af:query id="qryId1" headerText="Search" disclosed="true" value="#{bindings.ImplicitViewCriteriaQuery.queryDescriptor}" model="#{bindings.ImplicitViewCriteriaQuery.queryModel}" queryListener="#{bindings.ImplicitViewCriteriaQuery.processQuery}" queryOperationListener="#{bindings.ImplicitViewCriteriaQuery.processQueryOperation}" resultComponentId="::resId1"/>
稍后我们会做些改动。
3. 创建一个Managed Bean
(1)把table组件绑定到Managed Bean中的一个属性,这样可以在代码中操作table组件。
(2)把popup组件绑定到Managed Bean中的一个属性,这样可以在代码中操作table组件。
(3)修改queryListener,将其指向Managed Bean中的一个方法: queryListener="#{myBackingBean.queryListener}"。
queryListener方法内容如下:
public void queryListener(QueryEvent queryEvent) { // 首先通过程序调用原有的queryListener JSFUtils.invokeMethodExpression("#{bindings.ImplicitViewCriteriaQuery.processQuery}", Object.class, QueryEvent.class, queryEvent); // 隐藏popup组件 searchPopup.hide(); // 刷新table组件 AdfFacesContext.getCurrentInstance().addPartialTarget(resultTable); }
4. 运行页面
点击Search按钮,弹出popup窗口,输入条件,回车确定。
Table将显示符合查询条件的记录。
5. 小结
使用JSFUtils.invokeMethodExpression可以在代码中调用原来绑定在组件上的Listener事件。
这是一种定制组件Listener事件的方式:在调用原有Listener方法的前后加入自己的逻辑。
Project 下载:ADF_QueryInPopup.7z
http://maping930883.blogspot.com/2010/04/adf066adf-bc-popup.html
相关文章推荐
- 使用ADF-BC 实现查询功能之七:使用View Criteria
- 使用ADF-BC 实现查询功能之十:重写prepareRowSetForQuery方法设置变量
- 使用ADF-BC 实现查询功能之一:All Queriable Attributes
- 使用ADF-BC 实现查询功能之三:如何在页面装载时自动执行查询?
- 使用ADF-BC 实现查询功能之八:通过代码动态设置Criteria条件参数
- 使用ADF-BC 实现查询功能之五:使用TaskFlow过滤查询结果
- 使用ADF-BC 实现查询功能之四:通过代码动态设置Where条件参数
- 使用ADF-BC 实现查询功能之二:ExecuteWithParams
- 使用ADF-BC 实现查询功能之九:重写getCriteriaItemClause方法设置Criteria中的变量
- 使用ADF组件实现附件上传下载功能
- jspsmartupload 组件的使用 案例(上传和下载功能实现)
- 使用全文索引技术实现高效的like模糊查询功能
- 用C# 简单实现带查询功能的ComboBox组件
- 实体类字段使用属性类来实现验证功能
- Winform(C#.NET)自动更新组件的使用及部分功能实现
- SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表
- JPA使用本地查询实现联表查询,同一结果集中返回多个实体,多个字段
- 使用avalon实现SKU组合查询功能
- 使用Oracle函数实现按汉字拼音首字母查询功能
- IE下使用smsx.cab组件实现打印和打印预览功能