有没有办法允许在第一次请求对特定列进行排序之后,不是按升序排列,而是按降序排列?
描述:如果我需要按降序对列进行排序,则需要先按升序单击列,然后才能根据需要重新加载带有排序数据的表。我现在使用的一个不太好的解决方案是在列的情况下,我需要相反的顺序,我只是在查询数据库时交换升序/降序的含义。但是表格没有正确显示表格上方的箭头,我正在对数据进行排序,并且有必要对 CSS 中的列进行干预。
有没有更优雅的选择?
抱歉,我的英语很简单,感谢您的任何建议,文卡。
有没有办法允许在第一次请求对特定列进行排序之后,不是按升序排列,而是按降序排列?
描述:如果我需要按降序对列进行排序,则需要先按升序单击列,然后才能根据需要重新加载带有排序数据的表。我现在使用的一个不太好的解决方案是在列的情况下,我需要相反的顺序,我只是在查询数据库时交换升序/降序的含义。但是表格没有正确显示表格上方的箭头,我正在对数据进行排序,并且有必要对 CSS 中的列进行干预。
有没有更优雅的选择?
抱歉,我的英语很简单,感谢您的任何建议,文卡。
正如@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>
...