web-dev-qa-db-fra.com

Comment changer le message p par défaut: dataTable emptyMessage

J'utilise dataTable de PrimeFaces. Je reçois "Aucun enregistrement trouvé." quand la table n'a pas d'élément. Je veux changer ce message en quelque chose comme "Aucun résultat" et faire en sorte que ce message soit de type i18n.

Je ne veux pas utiliser 

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

pour chaque table.

Comment changer le message p: dataTable default emptyMessage?

19
ahmet

À partir du code source de __ ____DataTable PrimeFaces 3.5:

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

Donc, c'est codé en dur et il n'y a aucun moyen de le changer dans un endroit unique autrement qu'en piratant la source PrimeFaces ou en créant un tagfile (non composite!)<my:dataTable> qui enveloppe le <p:dataTable> avec l'ensemble de messages souhaité.

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

Si vous ne voulez pas réellement modifier _ le message, mais simplement pour le masquer, vous pouvez également opter pour une solution CSS pure:

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

write emptyMessage = "" à l'intérieur du datatable Ej:

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