【问题标题】:filterMatchMode lte and gte does not work on p:calendar in filter facet of p:dataTablefilterMatchMode lte 和 gte 在 p:dataTable 的过滤器方面对 p:calendar 不起作用
【发布时间】:2016-03-20 02:20:49
【问题描述】:

当我在 primeFaces 中使用日历时,我无法按表格进行过滤。

JAVA:

private Date creationDate;
private Date dateFrom;
private Date dateTo;

XHTML(仅适用于 LT 和 GT/不适用于 LTE、GTE):

<p:column filterBy="#{tab.dateTo}" headerText="Date to" filterMatchMode="lte">
            <f:facet name="filter">
                <p:calendar pattern="yyyy-MM-dd">
                    <p:ajax event="dateSelect" oncomplete="PF('datesTableDefinition').filter()"/>
                </p:calendar>
            </f:facet>
            <p:outputLabel value="#{tab.dateTo}">
                <f:convertDateTime pattern="yyyy-MM-dd"/>
            </p:outputLabel>
        </p:column>

我想要 == , ?

【问题讨论】:

  • 可能是因为日期比较是时间感知的(包括秒)?

标签: jsf primefaces filter datatable calendar


【解决方案1】:

你可以做到,对我有用!

filterFunction="#{controller.filterByDate}"代替filterMatchMode

public boolean filterByDate(Object value, Object filter, Locale locale) {
    if( filter == null ) {
        return true;
    }

    if( value == null ) {
        return false;
    }

    return DateUtils.truncatedEquals((Date) filter, (Date) value, Calendar.DATE);
}

https://stackoverflow.com/a/30116077/3255595

【讨论】:

    猜你喜欢
    • 2011-07-11
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 2013-11-03
    相关资源
    最近更新 更多