2013-02-13 11 views
19

私はPrimeFacesのdataTableを使用しています。私は "レコードが見つかりませんでした。"テーブルに要素がないとき。私はこのメッセージを "No result"のようなものに変更し、このメッセージをi18nタイプにしたいと思います。デフォルトのpを変更する方法:dataTable emptyMessageメッセージ

私はすべてのテーブルに対して

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

を使用する必要はありません。

どのようにp:dataTableのデフォルトのemptyMessageメッセージを変更できますか? PrimeFaces 3.5 DataTableソースコードから

+10

PrimeFacesチームに問題を追加することをお勧めします。正直なところ、(成熟度の高いツールでは)使用しているすべてのデフォルト・メッセージを含むプロパティー・ファイルを作成するための時間だと思うので、デフォルトのJSF検証メッセージのようにオーバーライドできます。 datatableだけでなく、すべてのコンポーネント用です。 – partlov

答えて

29

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

単純なコードは完全な答えではありません。あなた自身も説明してください。それはgenerellルールです。しかしさらに、あなたは新しい情報を提供していないので、あなたの答えは冗長であり、ここで提供される情報は改善されません。 –

+0

これはどのバージョンからですか? – Kukeltje

+0

申し訳ありません。私は引用符の間に表示したいテキストを書いていると言っていました。 – luisja19

関連する問題