2015-05-27 157 views
0

如何過濾dd/mm/yyyy模式中的Datatable中的日期列? 我正在使用Primefaces 5.2社區版。Primefaces Datatable日期列篩選

<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> 

過濾無需轉換器的作品,但與轉換器不工作了

+0

由於PrimeFaces 5.0,任何輸入組件可以放置內'的'充當柱過濾器。按日期過濾結果列表不再與通過使用其他類型的值過濾不同。 – Tiny

+0

是的,在過濾中沒有問題,但真正的問題是如何過濾dd/mm/yyyy模式 – coderxyz24

回答

0

這對我的工作就好了。

<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']}" /> 

你必須記住,過濾犯規看到您的日期轉換格式,但在來自原單表格輔助豆。 因此,當你有'yyyy-MM-dd'格式的日期並使用轉換器'pattern =「dd/MM/yyyy」'時,在過濾器字段中,你必須使用與原始bean格式相同的模式,例如'2015-05 -03' 。

+0

爲什麼選擇downvoted?正如我所說,我沒有問題,只是這樣過濾日期。你的'約會'是什麼類型?我使用時間戳 – Viwritis

+0

使用轉換器時適合您嗎? – Kukeltje

+0

只要爲convertDateTime設置了時區就看起來像。 ' \t \t \t \t \t \t \t的 \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t'和web.xml中' ​​javax.faces。DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE 真正的 ' – Viwritis

-2

請勿在視圖中格式化日期,而應將其轉換並格式化爲支持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); 
} 
+0

不錯的選擇,PrimeFaces已經足夠方式的選擇,真正過濾的日期 – Kukeltje

+0

@Kukeltje爲什麼不告訴我們你的答案呢?我的解決方案對於我來說比在視圖中的實際日期嘗試使用PF過濾器容易得多。 – jeff

+0

使用過濾器構面。輸入可以日曆組件。無需將視圖責任(格式)添加到您的bean。沒有必要爲我發佈答案,因爲這是在PrimeFaces展櫃 – Kukeltje