【问题标题】:Default sort column in rich:datatablerich:datatable 中的默认排序列
【发布时间】:2011-09-05 11:25:23
【问题描述】:

我有 rich:dataTable 有多个可排序的列。

<rich:column sortBy="#{user.uid}">
...
<rich:column sortBy="#{user.sn}">
...
etc.

排序工作正常。但是,加载页面时,表格始终按第一列排序。如何设置“默认”排序列? (例如带有user.sn的那个)

编辑:我希望它首先按sn 排序,其次是uid

【问题讨论】:

    标签: java jsf sorting datatable richfaces


    【解决方案1】:

    列的排序顺序由其 sortOrder 属性定义:NONE、ASCENDING 或 DESCENDING。

    默认情况下,此属性为 NONE - 因此最初该表未按任何列(也不是第一列)排序。它使用数据模型的排序。

    要定义一个初始排序列,请设置该列的 sortOrder,例如。 G。

    &lt;rich:column sortBy="#{user.sn}" sortOrder="ASCENDING"&gt;

    对于rich:dataTable、rich:scrollableDataTable 和rich:extendedDataTable 也是如此。

    【讨论】:

    • 对我来说,该属性称为 sortOrder ,但你是对的。
    【解决方案2】:

    我不确定如何使用 rich:dataTable 来执行此操作。但我记得,我将类似的功能请求(表格的单独排序和排序)切换到rich:extendedDataTable。在那里,您可以创建到 tableState 的绑定并设置例如这个属性:

    {
    "columnsVisibility":{"cCountry":"1","cProject":"1","cStatus":"1","cNumber":"1"},
    "columnGroupingState":{"order":"ASCENDING","columnId":"cStatus"},
    "columnsSizeState":{"cCountry":"98","cProject":"242","cStatus":"80","cNumber":"55"},
    "columnsOrder":["cCountry","cProject","cNumber","cStatus"]
    }
    

    【讨论】:

      【解决方案3】:

      我想您必须对基础列表进行排序。默认情况下,表格将按照您作为值传递的列表进行排序。

      【讨论】:

      • 答案不正确,因为 sortOrder="ASCENDING","DESCENDING" 或 "NONE" 将完成@Raimund 提到的工作
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      • 1970-01-01
      • 2012-12-15
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      相关资源
      最近更新 更多