PrimeFaces 8.0
<p:dataTable value="#{MyView.parents}" var="parent" id="parentID" widgetVar="parentsVar">
<p:column headerText="Column 1" sortable="true" sortBy="#{parent.name}" filterable="true" filterBy="#{parent.name}" filterMatchMode="contains" filterFunction="#{FilterController.filterByString}">
<f:facet name="filter">
<p:selectCheckboxMenu label=""
onchange="PF('parentsVar').filter()" updateLabel="true">
<f:selectItems value="#{MyView.namesForFilter}" />
</p:selectCheckboxMenu>
</f:facet>
<h:outputText value="#{parent.name}"/>
</p:column>
<p:column >
<p:rowToggler >
</p:rowToggler>
</p:column>
<p:rowExpansion>
<p:dataTable value="#{parent.children}" var="child" id="childID" widgetVar="childVar">
<p:column headerText="Child Type" filterable="true" filterBy="#{child.type}"
filterMatchMode="contains" filterFunction="#{FilterController.filterByString}">
<f:facet name="filter">
<p:selectCheckboxMenu label=""
onchange="PF('childVar').filter()">
<f:selectItems value="#{utilityPSA.childTypesForFilter}" />
</p:selectCheckboxMenu>
</f:facet>
<h:outputText value="#{child.type}"/>
</p:column>
</p:dataTable>
</p:rowExpansion>
</p:dataTable>
两个问题:
- 当我扩展了两个行扩展列时,过滤不起作用
- 在行扩展中过滤子表是用相同的过滤子记录替换所有其他行扩展,即使子数据不属于行扩展。
任何帮助表示赞赏。谢谢你的时间。