2013-02-13 1 views
19

PrimeFaces의 dataTable을 사용하고 있습니다. 나는 "기록을 찾을 수 없습니다." 테이블에 요소가없는 경우. 이 메시지를 "No result"와 같은 것으로 변경하고이 메시지를 i18n 유형으로 만들고 싶습니다.기본 p를 변경하는 방법 : dataTable emptyMessage 메시지

나는 모든 테이블에 대해

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

를 사용하지 않습니다.

p : dataTable 기본값 인 emptyMessage을 어떻게 바꿀 수 있습니까?

+10

PrimeFaces 팀에 문제를 추가하는 것이 좋습니다. 솔직히 나는 (성숙도 수준의 도구를 사용하는) 시간이 그들이 사용하는 모든 기본 메시지로 특성 파일을 작성한다고 생각하므로 기본 JSF 유효성 검증 메시지처럼 대체 될 수 있습니다. datatable뿐 아니라 모든 구성 요소에 사용됩니다. – partlov

답변

29
3.5 DataTable 소스 코드 PrimeFaces에서

: 그래서

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

그냥 일반 코드는 완전한 대답이 아닙니다. 제너럴 규칙입니다. 그러나 귀하는 새로운 정보를 제공하지 않으므로 귀하의 답변은 중복되어 여기 제공된 정보가 개선되지 않습니다. –

+0

그리고 어떤 버전에서 작동합니까? – Kukeltje

+0

죄송합니다. 따옴표 ""사이에 표시 할 텍스트를 작성한다고 말하고 싶습니다. – luisja19