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

j'utilise le dataTable de PrimeFaces. J'ai "Aucun enregistrement trouvé."quand la table n'a pas d'élément. Je veux changer ce message à quelque chose comme "aucun résultat" et faire ce message i18n type.

je ne veux pas utiliser

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

pour chaque table.

Comment changer p: dataTable default emptyMessage message?

19
demandé sur BalusC 2013-02-13 18:37:40

2 réponses

à Partir de la PrimeFaces 3.5 DataTable code source:

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

donc, c'est codé dur et il n'y a aucun moyen de le changer en un seul endroit autre que de pirater la source PrimeFaces ou de créer un tagfile (non composite!)<my:dataTable> qui enveloppe le <p:dataTable> avec le message désiré.

<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 avez réellement ne voulez pas modifier le message, mais veulent simplement masquer tout à fait, alors vous pourriez optez également pour une solution CSS pure:

.ui-datatable-empty-message {
    display: none;
}
31
répondu BalusC 2017-05-23 12:10:15

écrire emptyMessage="" à l'intérieur de la datatable Ej:

<p:dataTable var="hola"
    value="#{logica.hola}"
    emptyMessage="text you want to appear" >
    </p:dataTable>
1
répondu luisja19 2018-01-09 15:07:32