2013-02-13 10 views
19

Utilizzo il dataTable di PrimeFaces. Ottengo "Nessun record trovato". quando la tabella non ha alcun elemento. Voglio cambiare questo messaggio con qualcosa come "Nessun risultato" e rendere questo messaggio di tipo i18n.Come modificare l'impostazione predefinita p: dataTable emptyMessage message

Non voglio usare

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

per ogni tavolo.

Come posso modificare p: dataTable default emptyMessage messaggio?

+10

Suggerisco di aggiungere problemi al team PrimeFaces. Onestamente, penso che sia il momento (per lo strumento con quel livello di maturità) di rendere il file delle proprietà con tutti i messaggi predefiniti che stanno usando, in modo che possa essere sovrascritto come quei messaggi di convalida JSF predefiniti. Non solo per datatable, ma per tutti i componenti. – partlov

risposta

29

Dalle primefaces codice 3.5 DataTable fonte:

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

Quindi, è duro codificato e non c'è modo di cambiarlo in un unico luogo altro modo che l'hacking della fonte primefaces o la creazione di un tagfile (not composite!)<my:dataTable> che avvolge il <p:dataTable> con il set di messaggi desiderato.

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

Se effettivamente non si vuole cambiamento il messaggio, ma semplicemente vogliono nascondere del tutto, quindi si potrebbe anche optare per una soluzione CSS puro:

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

write emptyMessage = "" all'interno del datatable Ej:

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

Solo codice semplice non è una risposta completa. Per favore, spiega anche te stesso, questa è una regola generale. Inoltre, non hai fornito nuove informazioni, quindi la tua risposta è ridondante e non migliora le informazioni fornite qui. –

+0

E da quale versione funziona? – Kukeltje

+0

scusa. Volevo dire che scrivi il testo che vuoi apparire tra le virgolette "" – luisja19

Problemi correlati