rich:datatable中的默认排序列

时间:2011-05-31 12:44:00

标签: java jsf sorting datatable richfaces

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

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

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

3 个答案:

答案 0 :(得分:14)

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

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

要定义初始排序列,请设置此列的sortOrder,e。 G。

<rich:column sortBy="#{user.sn}" sortOrder="ASCENDING">

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

答案 1 :(得分:1)

我不确定如何使用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"]
}

答案 2 :(得分:0)

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