1

autoComplete와 dataTable의 결합으로 복합 구성 요소를 처리하려고합니다.동일한 복합 구성 요소에 <cc : insertChildren />이 여러 개 있습니다.

<util:myCustomComp ...> 
    <p:column>#{item.code}</p:column> 
    <p:column>#{item.name}</p:column> 
</util:myCustomComp> 

그리고 CC 파일 :이처럼

<p:autoComplete ...> 
    <cc:insertChildren /> <!-- Show columns only in autocomplete --> 
</p:autoComplete> 
<p:dataTable ...> 
    <cc:insertChildren /> 
</p:dataTable> 

그러나 렌더링 두 번째 밤은, (데이터 테이블 자동 완성 또는) 첫 번째와 skeep을 렌더링합니다.

<p:autoComplete ... /> 
<p:dataTable ...> 
    <cc:insertChildren /> <!-- Show columns in dataTable --> 
</p:dataTable> 

답변

1

보기에서 cc : insertChildren을 복합 컴포넌트 당 한 번만 사용할 수 있습니다. 그렇지 않으면 중복 ID 예외가 발생합니다. 불행히도 작동 할 수있는 방법은 없습니다 :-(.

2

아쉽게도 작동하지 않으며 선언적으로 구성 요소를 복제 할 수있는 방법이 없습니다. 가장 가까운 곳은 <ui:include>입니다.

<ui:composition ...> 
    <p:column>#{item.code}</p:column> 
    <p:column>#{item.name}</p:column> 
</ui:composition> 

columns.xhtml

홈페이지보기 :

<p:autoComplete ...> 
    <ui:include src="#{cc.attrs.columnsFile}" /> 
</p:autoComplete> 
<p:dataTable ...> 
    <ui:include src="#{cc.attrs.columnsFile}" /> 
</p:dataTable> 

(면책 조항 : 부분적인 상태 저장이 설정되어있는 경우 검증되지 않은이 중단 될 수 있습니다보기 콩 범위

복합 구현

<util:myCustomComp columnsFile="/columns.xhtml" ... /> 

에)

+0

도움을 주셔서 감사합니다.하지만이 각 사용에 대한 새 파일을 만드는 것은 매우 어렵습니다. 지금, 나는 dataTable의 children 열과 autoComplete의 toString을 사용하고 있습니다. . – rogeriolino

관련 문제