【问题标题】:PrimeFaces datatable initial sortBy does not workPrimeFaces 数据表初始 sortBy 不起作用
【发布时间】:2012-06-01 10:45:50
【问题描述】:

我有一个使用 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 标记时,它工作正常。

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

【问题讨论】:

    标签: java jsf primefaces


    【解决方案1】:

    排序是在原来的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()}"

    【讨论】:

    • 好的,谢谢,所以我需要一个特殊的 bean 来表示我的 object[],对吗?顺便提一句。 list 是 jpa 查询的结果
    • @kostja PF 希望我有一个 SortMeta 值的列表。你能帮我解决这个问题吗?
    猜你喜欢
    • 2014-11-06
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 2014-07-26
    • 2015-09-12
    相关资源
    最近更新 更多