Sorting 如何在primefaces列中排序?

Sorting 如何在primefaces列中排序?,sorting,jsf,jsf-2,primefaces,dynamic-columns,Sorting,Jsf,Jsf 2,Primefaces,Dynamic Columns,所以,我已经试了三天了。。。首先,我发现primefaces的标签p:columns有一个bug,因为它的sortFunction要求一个属性而不是一个方法。因此,我找到了这个解决方案: 尽管如此,即使达到了这个方法,我也不知道我要对哪个列进行排序,因为我不确定是否可以传递一个参数。有人能帮忙吗? 我在这里使用的是PrimeFaces5.0 这是我的数据表: <p:dataTable value="#{categoryBean.categories}" var="category">

所以,我已经试了三天了。。。首先,我发现primefaces的标签p:columns有一个bug,因为它的sortFunction要求一个属性而不是一个方法。因此,我找到了这个解决方案: 尽管如此,即使达到了这个方法,我也不知道我要对哪个列进行排序,因为我不确定是否可以传递一个参数。有人能帮忙吗? 我在这里使用的是PrimeFaces5.0

这是我的数据表:

<p:dataTable value="#{categoryBean.categories}" var="category">
    <p:column sortBy="#{category.name}">
        <f:facet name="header">
            <h:outputText value="Category"></h:outputText>
        </f:facet>
        <h:outputText value="#{category.name}"></h:outputText>
    </p:column>
    <p:columns value="#{categoryBean.columns}" var="column" columnIndexVar="i" sortBy="#{category}" sortFunction="#{categoryBean.customOrder}">
        <f:facet name="header">
            <h:outputText value="#{column.header}">
            </h:outputText>
        </f:facet>
        <h:outputText value="#{category[column.property][i].sumGrade/category[column.property][i].countGrade}"></h:outputText>
    </p:columns>
</p:dataTable>
因此,对象可以到达方法,但是,我需要知道如何传递参数或其他东西,这样我才能知道我引用的列。 谢谢大家。

有一个属性
sortBy
sortOrder

比如说

<p:dataTable id="table1" var="x" value="#{myBackingBean.myEntities}" sortBy="#{x.id}" sortOrder="descending">


…假设你的支持bean对象有一个
.getId()
字段。

发布一些代码。。。或者在这里查看官方文档:它使用动态列,我必须排序为
{category[column.property][I].sumGrade/category[column.property][I].countGrade}
<p:dataTable id="table1" var="x" value="#{myBackingBean.myEntities}" sortBy="#{x.id}" sortOrder="descending">