在rich:datatable中的默认排序列

5

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

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

排序功能很好用。然而,当页面加载时,表格总是按照第一列排序。我该如何设置“默认”排序列?(例如,使用user.sn)

编辑:我想先按sn排序,其次按uid排序。

3个回答

14

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

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

要定义初始排序列,请设置此列的sortOrder,例如:

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

对于rich:dataTable、rich:scrollableDataTable和rich:extendedDataTable同样适用。


对我来说,属性被称为sortOrder,但你是正确的。 - DThought

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"]
}

0

我想你需要对底层列表进行排序。默认情况下,表格将按照您传递的值作为列表的顺序进行排序。


1
答案不正确,因为如@Raimund所述,sortOrder =“ASCENDING”,“DESCENDING”或“NONE”将完成工作。 - M. Atif Riaz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接