2013-02-13 184 views
19

我正在使用PrimeFaces的dataTable。我收到“找不到记录”。当表没有元素时。我想将此消息更改为“无结果”,并将此消息设置为i18n类型。如何更改默认的p:dataTable空消息消息

我不想使用

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

每个表。

如何更改p:dataTable默认emptyMessage消息?

+10

我建议向PrimeFaces团队添加问题。老实说,我认为现在是时候(对于具有这种成熟度的工具)来使用它们正在使用的所有默认消息来创建属性文件,所以它可以像这些默认的JSF验证消息一样被覆盖。不仅适用于数据表,而且适用于所有组件。 – partlov 2013-02-13 14:53:12

回答

29

从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 (not composite!)<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; 
} 
-1

在数据表内写入emptyMessage =“” Ej:

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

只是简单的代码不是一个完整的答案。请解释一下自己,这是一个共同的规则。但是,您还没有提供任何新的信息,所以您的答案是多余的,并且不会改善此处提供的信息。 – 2017-12-14 09:52:02

+0

从哪个版本开始这项工作? – Kukeltje 2017-12-14 10:55:41

+0

对不起。我想说你写了你想要在引号之间出现的文字“” – luisja19 2018-01-09 15:04:37