本文介绍了PF过滤包含日期的数据表列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
限时删除!!
我在数据表中有一个列,我想使用以下代码添加过滤器:
<p:dataTable id="aDataTable" var="aVariable" value="#{aView.values}" paginator="true" rows="10" selectionMode="single" selection="#{aView.selection}" onRowSelectUpdate="aForm"><f:facet name="header">一个列表</f:facet><p:column sortBy="#{aVariable.id}" filterBy="#{aVariable.id}" filterEvent="change"><f:facet name="header"><h:outputText value="No"/></f:facet><h:outputText value="#{aVariable.id}"/></p:列><p:column sortBy="#{aVariable.date}" filterBy="#{aVariable.date}" filterEvent="change"><f:facet name="header"><h:outputText value="日期"/></f:facet></p:dataTable>
以这种格式输入日期:
<p:calendar pattern="dd/MM/yyyy" value="#{aView.value.date}"/>
过滤器适用于 id 但不适用于日期.这是什么原因,在这种情况下我如何使过滤器工作?
解决方案
primefaces 中还没有现成的日期过滤机制,但可以使用自定义过滤器按日期过滤.您必须为您的列定义标题方面并使用 ajax 调用进行手动"过滤,但它确实有效:
<f:facet name="header">DateRange<div><p:calendar id="from" value="#{bean.from}" styleClass="calendarFilter"><p:ajax event="dateSelect" listener="#{ctrlr.filterDates()}" update="dataTableId"/></p:日历><p:calendar id="to" value="#{bean.to}" styleClass="calendarFilter"><p:ajax event="dateSelect" listener="#{ctrlr.filterDates()}" update="dataTableId"/></p:日历>
</f:facet>
...
I have a column in a datatable and I want to add a filter with this code:
<p:dataTable id="aDataTable" var="aVariable" value="#{aView.values}" paginator="true" rows="10" selectionMode="single" selection="#{aView.selection}" onRowSelectUpdate="aForm">
<f:facet name="header">
A List
</f:facet>
<p:column sortBy="#{aVariable.id}" filterBy="#{aVariable.id}" filterEvent="change">
<f:facet name="header">
<h:outputText value="No"/>
</f:facet>
<h:outputText value="#{aVariable.id}"/>
</p:column>
<p:column sortBy="#{aVariable.date}" filterBy="#{aVariable.date}" filterEvent="change">
<f:facet name="header">
<h:outputText value="Date"/>
</f:facet>
</p:dataTable>
date is inputted in a form in this format:
<h:outputText value="Date: *"/>
<p:calendar pattern="dd/MM/yyyy" value="#{aView.value.date}"/>
Filter is working for id but not for date. What is the reason for this and how can I make filter work in this case?
解决方案
There is no ready-made date filter mechanism in primefaces yet, but there is a possibility to filter by date using a custom filter. You will have to define a header facet for your column and use ajax calls for "manual" filtering, but it does work:
<column>
<f:facet name="header">DateRange
<div>
<p:calendar id="from" value="#{bean.from}" styleClass="calendarFilter">
<p:ajax event="dateSelect" listener="#{ctrlr.filterDates()}" update="dataTableId"/>
</p:calendar>
<p:calendar id="to" value="#{bean.to}" styleClass="calendarFilter">
<p:ajax event="dateSelect" listener="#{ctrlr.filterDates()}" update="dataTableId"/>
</p:calendar>
</div>
</f:facet>
...
这篇关于PF过滤包含日期的数据表列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
1403页,肝出来的..