您的位置:首页 > 其它

Table 组件使用指南:定制列字段过滤组件

2013-03-01 14:15 381 查看
开发环境:JDeveloper 11.1.2.2.0 + Oracle XE Database 10gR2。

默认情况下,ADF Table使用InputText作为列字段过滤组件,你可以根据需要换成其它的组件。

基本的实现方法就是:右键点击要定制Column,选择为其增加Filter Facet:





1. 使用带tips的InputText

为LastName字段增加Filter Facet:InputText。

<f:facet name="filter">
<af:inputText id="it1" value="#{vs.filterCriteria.LastName}" shortDesc="Pls Input Filter for LastName"/>
</f:facet>


运行效果如下:





2. 使用selectOnceChoice

为DepartmentId字段增加Filter Facet:SelectOneChoice。

(1)Department下拉列表要用到Tree Binding,因此手工增加一个。





(2)Tree Binding的定义如下:





(3)为了一次取出所有的Department,设置DepartmentsView1Iterator的RangeSize=-1,表示一次全部读出。

注意,这只适用于记录比较少的情况,如果记录比较多,应该使用LOV。

(4)向DepartmentId字段的Filter Facet中放置SelectOneChoice





最终的代码如下:

<f:facet name="filter">
<af:selectOneChoice value="#{vs.filterCriteria.DepartmentId}" id="soc1">
<af:forEach var="listrow" items="#{bindings.DepartmentsView1.rangeSet}">
<f:selectItem id="si1" itemValue="#{listrow.DepartmentId}"
itemLabel="#{listrow.DepartmentName}"/>
</af:forEach>
</af:selectOneChoice>
</f:facet>


运行效果如下:





注意,这里有一个问题:第一次显示时,会有Blank Item,但是选择一个Department后,就没有Blank Item了。

这样用户就无法清空查询条件了,感觉是一个BUG。待查。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: