Primefaces Datatable日期列过滤



如何以dd//mm/yyyy模式过滤Datatable中的Date列?我使用的是Primefaces 5.2社区版。

<p:column sortBy="#{user.date}" styleClass="date"
    filterBy="#{user.date}" id="date">
        <h:outputText value="#{user.date}">
            <f:convertDateTime type="date" pattern="dd/MM/yyyy" />
        </h:outputText>
        <p:watermark for="@(.date)" value="#{msg['dateOfBirth']}" />
</p:column>

没有转换器的过滤工作,但有了转换器就不再工作了

这对我来说很好。

<p:column headerText="Data " filterBy="#{user.date}">
    <h:outputText value="#{user.date}" />

但我可能不明白你真正的问题是什么。

编辑。

我复制粘贴了你的代码,它对我来说很好…

<p:column sortBy="#{odczyt.data_odczytu}" 
filterBy="#{odczyt.data_odczytu}" id="date">
    <h:outputText value="#{odczyt.data_odczytu}">
        <f:convertDateTime type="date" pattern="dd/MM/yyyy" />
    </h:outputText>
    <p:watermark for="@(.date)" value="#{msg['dateOfBirth']}" />

必须记住,过滤器看到的不是转换后的日期格式,而是来自后台bean的原始格式。所以当你有一个'yyyy-MM-dd'格式的日期并使用转换器'模式="dd/MM/yyyy"'时,在过滤器字段中你必须使用与原始bean格式相同的模式,例如'2015-05-03'。

不要在视图中格式化日期,而是在后台bean中将日期转换为字符串。

视图

 <p:column sortBy="#{user.dateAsString}" styleClass="date" 
      filterBy="#{user.dateAsString}" id="date">
    <h:outputText value="#{user.dateAsString}">
 </p:column>
支持bean

public String getDateAsString() {
    Format formatter = new SimpleDateFormat("dd/mm/yyyy");
    return formatter.format(date);
}

相关内容

  • 没有找到相关文章

最新更新