所以我要说下面的表格:
<p:dataTable id="genaricTable" var="item" value="#{genaricBean.currentValue}" >
<p:columnGroup type="header">
<p:row>
<p:column rowspan="" headerText="value1"/>
<p:column rowspan="" headerText="value2"/>
<p:column rowspan="" headerText="value3"/>
</p:row>
</p:columnGroup>
<p:subTable var="subItem" value="#{item.subItemList}" >
<f:facet name="header">
#{item.header}
</f:facet>
<p:column>
<h:outputText value="#{subItem.value1}"/>
</p:column>
<p:column>
<h:outputText value="#{subItem.value1}"/>
</p:column>
<p:column>
<h:outputText value="#{subItem.value1}"/>
</p:column>
</p:subTable>
</p:dataTable>
我是否可以使用内置的primefaces组件对子列表进行过滤/排序?我唯一能想到的就是输入一个自定义命令链接来完成它。
答案 0 :(得分:0)
然而,有一个非常简单的解决方案。将其添加到标头columnGroup 内的列定义中。如果在那里定义,PrimeFaces DO会处理此属性。
我认为这种方法也许可以用于 filterBy ,但我没有尝试过。
<p:columnGroup type="header">
<p:row>
<p:column rowspan="" headerText="value1" sortBy="#{subItem.value1}"/>
<p:column rowspan="" headerText="value2"/>
<p:column rowspan="" headerText="value3"/>
</p:row>
</p:columnGroup>
编辑:您当然需要考虑您的基础数据集,并且可能使用不同的东西作为排序表达式,或者也可能在您的Managed Bean中编写一些解决方法,因为它从未如此简单分层数据。我使用该表达式只是为了说明解决方案。
答案 1 :(得分:-1)
用于对子列表进行排序,您可以在子列中添加sortBy ..类似这样的东西..
<p:column sortBy="#{subItem.value1}">
<h:outputText value="#{subItem.value1}"/>
</p:column>
试试..