【发布时间】:2013-02-18 10:30:13
【问题描述】:
我正在尝试在 Primeface 数据表上实现多排序。我们正在使用 Primefaces v3.5。我在 LazyLoadClass 中创建了一个新的加载方法,它采用 List of SortMeta> 参数。
但是我在表格的初始加载中遇到了问题。调用 load 方法时,SortMeta> 的 List 为 null。我也尝试过不指定数据表的初始 sortBy 和 sortOrder。在这两种情况下,结果都是一样的。
看到我们有了这个新的 SortMeta 类来支持多重排序,我怀疑指定初始排序字段和顺序的方式也会改变。但我在任何地方都找不到任何例子来指出差异。手册3.5没有提到任何区别。
为什么我们可以将 SortMeta 列表设为空?关于 Lazyload 使用 multisort 的示例代码的任何指针?
【问题讨论】:
-
您需要提供一个 SortMeta 列表给 sortBy。
-
好的。之前我们给出了列名称的字符串,但现在,据我了解,我们已将它绑定到 bean 上的 List
对象。谢谢!会试试这个。 -
@CagatayCivici 我试过
<p:dataTable var="trans" value="#{archiveBean.transactionModel}" lazy="true" sortMode="multiple" sortBy="#{hubArchiveBean.preSortOrder}" >并且我已经将preSortOrder 创建为private void buildSortOrder() { SortMeta sm1 = new SortMeta(); sm1.setSortField("resolvedDateTime"); m1.setSortOrder(SortOrder.DESCENDING); preSortOrder.add(sm1); }但是抛出了一个NPE,因为DataTableRenderer 中的encodeColumnHeader 方法正在以sortIcon = resolveDefaultSortIcon(columnSortByVe, meta.getColumn().getValueExpression("sortBy"), meta.getSortOrder().name());访问UIColumn
标签: jsf-2 primefaces