2

我在 primefaces 数据表中使用排序,它不适用于分页器。我哪里做错了?

<p:column headerText="Year" sortBy="#{questionnaireListBean.getQuestionnaireData(questionnaire, 'YEAR')}">
    #{questionnaireListBean.getQuestionnaireData(questionnaire, 'YEAR')}
</p:column>

并在 @PostConstruct 方法中查看具有初始化数据的作用域 bean:

public String getQuestionnaireData(Questionnaire questionnaire, String column) {
    return questionnairesData.get(questionnaire).get(column);
}
4

1 回答 1

3

所以你的问题的真正标题是:“排序和分页在延迟加载数据表中不能一起工作,primefaces”,这更准确地描述了你的问题。

至于这个问题,看来你应该预料到这个问题。在此链接中,问题是“是否有任何数据表 JSF 组件可以在服务器端执行延迟加载分页以及过滤和排序。如果我需要实现自己的解决方案,这要归功于进行客户端排序和过滤的团队,他们没用”,得到的答案是“不,没有。因为组件库不知道持久化机制是什么。” . 当然是2010年的...

看一下Primefaces 用户指南 3.5,它 appears排序/分页器/延迟加载可以共存,但这比仅仅添加sortBy到你的列更详细。事实上,查看指南的第 144 页,您可以看到您需要:

  • LazyDataModel在你的 bean 中有一个对象;
  • 覆盖load此对象的方法;
  • 将数据表的值绑定到此模型。

这样做,您可能会在延迟加载的同时进行排序。没试过,但这似乎解决了你的问题。

祝你好运。

于 2013-06-28T15:48:44.037 回答