【问题标题】:Primefaces lazytable sorting change first sorting orderPrimefaces 惰性表排序改变了第一个排序顺序
【发布时间】:2021-02-16 15:33:44
【问题描述】:
有没有什么办法允许在第一次请求对特定列进行排序后,不按升序排列在前,而是按降序排列在前?
说明:
如果我需要按降序对列进行排序,则必须先按升序单击列,然后才能根据需要使用排序数据重新加载表。
我现在使用的一个不完全好的解决方案是在列的情况下,我需要相反的顺序,我只是在查询数据库时交换升序/降序的含义。但是表格没有正确显示表格上方的箭头,我正在对数据进行排序,因此有必要对 CSS 中的列进行干预。
还有更优雅的选择吗?
对不起,我的英语简单,感谢您的任何建议,
文卡。
【问题讨论】:
标签:
sorting
primefaces
primefaces-datatable
【解决方案1】:
正如@Melloware 在评论中指出的那样datatable 具有可用于排序的字段sortBy 和sortOrder。
查看示例:
<p:dataTable id="txnTable"
value="#{chTransactionsForm.transactions}" var="res"
sortMode="single" sortBy="#{res.activityDate}" sortOrder="DESCENDING"
rows="#{referenceData.recordsPerPage}" rowKey="#{res._lineNumber}"
lazy="true" resizableColumns="true"
paginator="true" paginatorPosition="bottom" paginatorAlwaysVisible="false"
paginatorTemplate="#{referenceData.paginatorTemplate}">
<p:column id="activityDate" headerText="#{msg.transDate}"
sortBy="#{res.activityDate}" width="120">
<h:outputText value="#{res.activityDate}">
<f:convertDateTime timeZone="#{referenceData.timezone}"
pattern="MMM dd, yyyy HH:mm" />
</h:outputText>
</p:column>
...