我有一个具有多个可排序列的rich:dataTable。
<rich:column sortBy="#{user.uid}">
...
<rich:column sortBy="#{user.sn}">
...
etc.
排序功能很好用。然而,当页面加载时,表格总是按照第一列排序。我该如何设置“默认”排序列?(例如,使用user.sn)
编辑:我想先按sn
排序,其次按uid
排序。
列的排序顺序由其sortOrder属性定义:NONE、ASCENDING或DESCENDING。
默认情况下,此属性为NONE - 因此初始状态下表格不会按任何列(也不是第一列)排序。它使用数据模型的顺序。
要定义初始排序列,请设置此列的sortOrder,例如:
<rich:column sortBy="#{user.sn}" sortOrder="ASCENDING">
对于rich:dataTable、rich:scrollableDataTable和rich:extendedDataTable同样适用。
我不确定如何在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"]
}
我想你需要对底层列表进行排序。默认情况下,表格将按照您传递的值作为列表的顺序进行排序。