Как изменить сообщение по умолчанию p: dataTable emptyMessage
Я использую dataTable PrimeFaces. Я не нашел никаких записей."когда в таблице нет элемента. Я хочу изменить это сообщение на что-то вроде "нет результата" и сделать это сообщение типом i18n.
Я не хочу использовать
<p:dataTable
id="idTable"
...
emptyMessage="#{messages['general.message.EmptyList']}"
>
для каждой таблицы.
Как изменить p: dataTable default emptyMessage
сообщение?
2 ответов
из PrimeFaces 3.5 DataTable
исходный код:
210 public java.lang.String getEmptyMessage() {
211 return (java.lang.String) getStateHelper().eval(PropertyKeys.emptyMessage, "No records found.");
212 }
Итак, он жестко закодирован, и нет никакого способа изменить его в одном месте, кроме взлома источника PrimeFaces или создания tagfile (не композит!) <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;
}
напишите emptyMessage= "" внутри datatable Ej:
<p:dataTable var="hola"
value="#{logica.hola}"
emptyMessage="text you want to appear" >
</p:dataTable>