【问题标题】:PrimeFaces 10: sortBy not working in p:dataTablePrimeFaces 10:sortBy 在 p:dataTable 中不起作用
【发布时间】:2021-05-20 10:39:50
【问题描述】:

我从 PrimeFaces 6.1 迁移到 10.0.0,现在我项目中的每个 p:dataTable 中的 sortBy 都不起作用。

我的p:dataTable的一个例子:

<p:dataTable widgetVar="truckListTable" id="truckListTable" var="truck" value="#{truckList.trucks}"
    sortBy="#{truck.code}" sortMode="single" filteredValue="#{truckList.filteredTrucks}" paginator="true"
    paginatorPosition="top" rows="20" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}">
    ...
    <p:column sortBy="#{truck.plate}" filterBy="#{truck.plate}" filterMatchMode="contains">
        <h:outputText value="#{truck.plate}" />
    </p:column>
    ...
</p:dataTable>

我在我的 bean truckList 中定义了 truck 变量如下:

private List<Map> trucks;

public List<Map> getTrucks() {
    return trucks;
}

public void setTrucks(List<Map> trucks) {
    this.trucks = trucks;
}

我的问题是当我点击列标题时,表格行没有排序。

filterBy 工作正常,但 sortBy 不行。我哪里做错了?

【问题讨论】:

    标签: primefaces primefaces-datatable


    【解决方案1】:

    文档指出sortBy 需要一个SortMetaSortMeta 的集合。 from 8 to 10 migration guide中也提到了这一点。

    所以,要么从你的 bean 中提供一个 SortMeta,要么简单地将 sortOrder 添加到“代码”的 p:column

    SortMeta 可以这样创建:

    SortMeta.builder().field("code").order(SortOrder.ASCENDING).build();
    

    另见:

    【讨论】:

    • 我试图定义一个 SortMeta 并按照你所说的在 p:datatable 的 sortBy 中调用它,但它仍然无法正常工作
    • 您是否也查看了链接的问题?
    • 我最终决定坚持使用 8.0 版
    【解决方案2】:

    遇到同样的问题,花了我几个小时。

    偶然发现这个话题:https://github.com/primefaces/primefaces/issues/7232#issuecomment-822529549

    javax.faces.STATE_SAVING_METHOD 更改为server 解决了这个问题。

    尝试在您的web.xml 中添加/替换

      <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>server</param-value>
      </context-param>
    

    【讨论】:

    • 这只是一个 hack,尝试使用 11.0.0-RC1
    猜你喜欢
    • 2014-11-06
    • 1970-01-01
    • 2013-08-09
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    相关资源
    最近更新 更多