java - PrimeFaces 数据表初始 sortBy 不起作用

标签 java jsf primefaces

我有一个使用 apache myfaces 2.0.2 的 PrimeFaces 3.2 DataTable。我想要一个初始排序。我的 JSF 看起来像:

<p:dataTable  id="serverdata" var="serverdata" sortBy="#{serverdata[0]}" sortOrder="descending" 
                value="#{ serverDataTable.list }" rows="10" editable="true" 
                paginator="true" rowsPerPageTemplate="10,20,50"
                paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}">
                <f:facet name="header">  
                   Datatable
                 </f:facet>
                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Datum"/>
                    </f:facet>
                    <h:outputText value="#{serverdata[0]}">
                    </h:outputText>
                </p:column>

但我得到一个UnsupportedOperationException: The result list is read-only. 当我删除其中的 sortBy 标签时,它工作正常。

所以我的问题是: 如何实现初始排序?

最佳答案

排序是在原始的 List 上执行的。如果它是只读的,则会抛出异常。尝试相同的方法,但使用常规的可变 List

编辑:在 bean 中创建一个常规列表:

public class MyBean {
...
List<MyObject> myList = new ArryList<MyObject>();
myList.add(new MyObject("a"));
myList.add(new MyObject("b"));
myList.add(new MyObject("c"));
...

然后像这样使用排序:value="#{myBean.myList}"var="myVar"sortBy="#{myVar.stringProp}"

EDIT2:如果排序参数是字符串或数字,则不需要自定义任何内容。如果您要对其他任何东西进行排序,则必须定义一个自定义的 sortFunction,

如果您使用延迟加载等高级选项(顺便说一下,它在 pf 3.2 中被破坏了 - 您现在可以更新到 3.3 - 它已在 29.5 上发布并声称已经解决了这个问题),您将必须定义一个自定义模型,照顾自己的过滤和分类。

因此,如果您想按数组的内容对数据进行排序,则需要定义属性 sortFunction="#{myBean.sortData()}"

关于java - PrimeFaces 数据表初始 sortBy 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10848828/

相关文章:

java - VideoView 不工作并且黑屏

java - 如何从一个 Java FXML Controller 中从另一个 FXML Controller 获取数据(这些 Controller 不是嵌套 Controller )?

java - 扫雷Java继承

多次调用 JSF Backing Bean 构造函数

eclipse - 简单的primefaces应用程序不起作用

javascript - Primefaces 对话框设置高度的一半屏幕大小

java - 如何在ubuntu 14.04中安装32位系统的eclipse neon版本

java - 如何使用 JSF 通过 URL 将参数传递给 bean 类?

jsf - 识别和解决javax.el.PropertyNotFoundException:目标不可访问

JSF action、actionlistener、onClick的区别