【问题标题】:How to sort in primefaces columns?如何在primefaces列中排序?
【发布时间】:2014-05-14 16:56:07
【问题描述】:

所以,我已经尝试了 3 天...首先,我发现 primefaces 有一个带有标签 p:columns 的错误,因为它的 sortFunction 要求一个属性而不是一个方法。所以,我找到了这个解决方案: here 尽管如此,即使达到该方法,我也不知道我要对哪一列进行排序,因为我不确定它是否可以传递参数。任何人都可以帮忙吗? 我在这里使用 primefaces 5.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>

这是我的方法:

public MethodExpression getCustomOrder() {
        FacesContext context = FacesContext.getCurrentInstance();
        return context.getApplication().getExpressionFactory()
            .createMethodExpression(context.getELContext(), 
            "#{categoryBean.customSort}", Integer.class, 
            new Class[] { Object.class, Object.class });
}


public int customSort(Object val1, Object val2) {
    System.out.println("mySort" + val1 + "/" + val2);
    return 0;
}

所以,对象可以到达方法,但是,我需要知道如何传递参数或其他东西,这样我才能知道我指的是哪一列。 谢谢各位。

【问题讨论】:

标签: sorting jsf jsf-2 primefaces dynamic-columns


【解决方案1】:

&lt;p:dataTable&gt; 有一个属性sortBysortOrder

例如

<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}
猜你喜欢
  • 2013-01-14
  • 2013-02-16
  • 2021-12-31
  • 2014-10-04
  • 2018-12-23
  • 2017-01-16
  • 2017-10-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多