【问题标题】:p:dataTable: How to sort only the data on the current page like Struts <display:table sort="page">?p:dataTable: 如何像 Struts <display:table sort="page"> 只对当前页面上的数据进行排序?
【发布时间】:2017-02-27 12:27:14
【问题描述】:

我的任务是将 Jetty 9.3 上的旧 Struts 1.3 应用程序移植到 JSF/Primefaces。 众所周知的 Struts &lt;display:table&gt;-component 有一个 sort-attribute 可以有 "list""page" 作为值,这意味着要么对整个底层数据进行排序,要么只对当前页面上的可见部分进行排序,分别。

如何使用 JSF &lt;h:dataTable&gt; 或者最好是 Primefaces &lt;p:dataTable&gt; 来模拟? 我查阅了 Primefaces 5.3 用户指南、展示和许多互联网资源,当然还有 stackoverflow 搜索。 Primefaces 的延迟加载功能可能是我认为的关键,但没有找到完整的示例。 有没有一个完整的例子,比如内存中的虚拟数据?,

【问题讨论】:

  • 在 p:dataTable 的 p:column 中有 sortBy 属性。会有帮助吗?
  • 是的,不,这将始终对整个基础数据进行排序。

标签: sorting primefaces jsf-2 datatable


【解决方案1】:

PrimeFaces 支持数据表的延迟加载。您可以进行延迟加载(无需预先完全加载所有数据)的功能实际上是通过让您完全控制排序、分页和过滤的任何方面来提供的。

通常您会过滤、排序然后分页,但这可以按任何顺序完成。

因此,在您之后进行排序非常简单,例如使用正确的过滤器加载正确页面的数据,而不是在分页之前进行排序。

这样你就可以实现你想要的行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 2015-02-10
    • 2017-10-18
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多