2013-02-13 102 views
19

我正在使用PrimeFaces的dataTable。我收到「找不到記錄」。當表沒有元素時。我想將此消息更改爲「無結果」,並將此消息設置爲i18n類型。如何更改默認的p:dataTable空消息消息

我不想使用

<p:dataTable 
    id="idTable" 
    ... 
    emptyMessage="#{messages['general.message.EmptyList']}" 
> 

每個表。

如何更改p:dataTable默認emptyMessage消息?

+10

我建議向PrimeFaces團隊添加問題。老實說,我認爲現在是時候(對於具有這種成熟度的工具)來使用它們正在使用的所有默認消息來創建屬性文件,所以它可以像這些默認的JSF驗證消息一樣被覆蓋。不僅適用於數據表,而且適用於所有組件。 – partlov 2013-02-13 14:53:12

回答

29

從PrimeFaces 3.5 DataTable源代碼:

210 public java.lang.String getEmptyMessage() { 
211  return (java.lang.String) getStateHelper().eval(PropertyKeys.emptyMessage, "No records found."); 
212 } 

所以,它是硬編碼的,而且也沒有辦法去改變它在一個地方其他方式比黑客的PrimeFaces源或創建tagfile (not composite!)<my:dataTable>包裝了<p:dataTable>與期望的消息集。

<ui:composition ...> 
    <p:dataTable id="#{id}" value="#{value}" var="item" 
     emptyMessage="#{messages['general.message.EmptyList']}"> 
     <ui:insert /> 
    </p:dataTable> 
</ui:composition> 
<my:dataTable id="foo" value="#{bean.items}"> 
    <p:column>#{item.foo}</p:column> 
    <p:column>#{item.bar}</p:column> 
</my:dataTable> 

如果你真的不想變化的消息,而只是想隱藏它完全,那麼你還可以選擇純CSS解決方案:

.ui-datatable-empty-message { 
    display: none; 
} 
-1

在數據表內寫入emptyMessage =「」 Ej:

<p:dataTable var="hola" 
    value="#{logica.hola}" 
    emptyMessage="text you want to appear" > 
    </p:dataTable> 
+1

只是簡單的代碼不是一個完整的答案。請解釋一下自己,這是一個共同的規則。但是,您還沒有提供任何新的信息,所以您的答案是多餘的,並且不會改善此處提供的信息。 – 2017-12-14 09:52:02

+0

從哪個版本開始這項工作? – Kukeltje 2017-12-14 10:55:41

+0

對不起。我想說你寫了你想要在引號之間出現的文字「」 – luisja19 2018-01-09 15:04:37