jsf - Cómo cambiar el mensaje p: dataTable emptyMessage
internationalization primefaces (2)
Estoy usando la tabla de datos de PrimeFaces. Me sale "No se encontraron registros". Cuando la tabla no tiene elemento. Quiero cambiar este mensaje a algo así como "Sin resultado" y hacer que este mensaje escriba i18n.
No quiero usar
<p:dataTable
id="idTable"
...
emptyMessage="#{messages[''general.message.EmptyList'']}"
>
para cada mesa
¿Cómo puedo cambiar el mensaje de mensaje emptyMessage
p: dataTable predeterminado?
Desde el código fuente de PrimeFaces 3.5 DataTable
:
210 public java.lang.String getEmptyMessage() {
211 return (java.lang.String) getStateHelper().eval(PropertyKeys.emptyMessage, "No records found.");
212 }
Por lo tanto, está codificado y no hay manera de cambiarlo en un solo lugar que no sea hackear la fuente de PrimeFaces o crear un archivo de etiquetas (¡no compuesto!) <my:dataTable>
que envuelve la <p:dataTable>
con el conjunto de mensajes deseado .
<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 realmente no quieres cambiar el mensaje, pero simplemente quieres ocultarlo por completo, entonces también puedes optar por una solución CSS pura:
.ui-datatable-empty-message {
display: none;
}
escribe emptyMessage = "" dentro de la Ej. de datos:
<p:dataTable var="hola"
value="#{logica.hola}"
emptyMessage="text you want to appear" >
</p:dataTable>