【发布时间】:2017-01-24 14:27:11
【问题描述】:
我有一个像这样的 PrimeFaces 数据表:
<p:dataTable
id="datatable_current_month_timesheets"
value="#{timesheetBean.currentMonthTimesheets}" var="item">
<p:column headerText="starttimeDate" sortBy="#{item.starttime}">
<h:outputText value="#{item.starttime}">
<f:convertDateTime pattern="EEE, dd.MM.yyyy" />
</h:outputText>
</p:column>
<p:column headerText="starttimeTime" sortBy="#{item.starttime}"> //how to sort this?
<h:outputText
value="#{item.starttime}">
<f:convertDateTime pattern="HH:mm" />
</h:outputText>
</p:column>
<p:column headerText="timeGap" sortBy="#{item.starttime}"> //how to sort this?
<h:outputText
value="#{timesheetBean.calculateTimeGap(item)}">
<f:convertDateTime pattern="HH:mm" />
</h:outputText>
</p:column>
</p:dataTable>
第一列得到正确的排序,因为它是按日期排序的,它不会给我带来任何问题。 然而,第二列的值与第一列基本相同,但仅以小时为单位:分钟。 第三列对时间进行一些计算,并获取时间。 由于我不保存这些值,我不知道如何按时间排序!
例如 12:00 在 07:00 之后和 14:35 之前。 我怎样才能做到这一点?
【问题讨论】:
-
听起来你需要在 p:column 上使用自定义 sortFunction
-
但是如果值是动态生成的,我将如何排序?我可以在不指定“sortBy”的情况下进行排序吗?
标签: primefaces datatable