实现功能:列出所有的部门,并根据选择的部门名称列出该部门下的所有员工。
1.页面主要代码:
<af:table value="#{bindings.EmployeesView1.collectionModel}"
var="row" rows="#{bindings.EmployeesView1.rangeSize}"
emptyText="#{bindings.EmployeesView1.viewable ? 'No data to display.' : 'Access Denied.'}"
fetchSize="#{bindings.EmployeesView1.rangeSize}"
rowBandingInterval="0"
filterModel="#{bindings.EmployeesView1Query.queryDescriptor}"
queryListener="#{bindings.EmployeesView1Query.processQuery}"
filterVisible="true"
varStatus="vs" (主要使用这个)
selectedRowKeys="#{bindings.EmployeesView1.collectionModel.selectedRow}"
selectionListener="#{bindings.EmployeesView1.collectionModel.makeCurrent}"
rowSelection="single" id="t1">
在目标字段里加上facet:
<af:column sortProperty="DepartmentId" filterable="true"
sortable="true"
headerText="#{bindings.EmployeesView1.hints.DepartmentId.label}"
id="c11">
<af:outputText value="#{row.DepartmentId}" id="ot4">
<af:convertNumber groupingUsed="false"
pattern="#{bindings.EmployeesView1.hints.DepartmentId.format}"/>
</af:outputText>
----------从下面开始---------
<f:facet name="filter">
<af:selectOneChoice value="#{vs.filterCriteria.DepartmentId}"
label="Label 1" id="soc1">
<af:forEach items="#{bindings.DepartmentsView1.rangeSet}"
var="rowlist">
<f:selectItem itemLabel="#{rowlist.DepartmentName}"
itemValue="#{rowlist.DepartmentId}"/>
</af:forEach>
</af:selectOneChoice>
</f:facet>
----------到上面结束---------
</af:column>
2.加上绑定。
(1)Tab页从Source切换到Bindings,点击绿色加号,在弹出窗体Insert Item里选择tree,点中OK.
(2)在窗体Create Tree Binding中,做一下设置:
a.Root Data Source:你可以从下拉列表中选择或者点击Add按钮添加。
b.Tree Level Rules:点击绿色加号按钮添加规则。
c.Available Attributes:将需要使用的属性从左边弄到右边。点击OK
3.保存and运行页面。