2012-01-19 2 views
1
<p:outputPanel> 
    <h:selectOneRadio value="#{myBean.favColor1}"> 
    <f:selectItem itemValue="Red" itemLabel="Color1 - Red" /> 
    <f:selectItem itemValue="Green" itemLabel="Color1 - Green" /> 
    <f:selectItem itemValue="Blue" itemLabel="Color1 - Blue" /> 
    </h:selectOneRadio> 
    <p:ajax update="picker,#{myBean.clientId}"/> 
</p:outputPanel> 

프로그래밍 방식으로 생성 된 ID를 가진 구성 요소를 업데이트해야합니다.backing bean에서 생성 된 ID를 업데이트하는 방법

답변

2

클라이언트 ID에는 기본 명명 컨테이너 구분 문자 :이 접두사로 붙어 있어야합니다 (클라이언트 ID가 아니라 구성 요소 ID에서 작동하는 상위 명명 컨테이너 대신 상대 UIViewRoot으로 절대적으로 해석됩니다) . 완전히 다른 대안 (I 꽤 가려운 백킹 빈에 대한 클라이언트 ID를 바인딩 찾을)로

<p:ajax update="picker,:#{myBean.clientId}"/> 

, 바로보기로 구성 요소를 결합하고이를 참조하는 대신 중간이 빈 관리를 통해.

<h:someComponent binding="#{foo}" /> 
... 

<p:ajax update="picker,:#{foo.clientId}"/> 
+0

감사합니다. 별도로 잘 작동하지만 다른 자동 완성 구성 요소가 손상되었습니다. 나는 그것을 알아낼 필요가있다. – Ravi

+0

반갑습니다. 예, 완전히 다른 문제입니다. 당신이 찔린다면 언제든지 새로운 질문을하십시오. – BalusC

+0

BalusC,이 [질문]에 대한 귀하의 답변을 두 개 혼합했습니다 (http://stackoverflow.com/questions/8797287/is-conditional-rendering-of-components-possible-inside-datatable-without-updatin/8957536# 8957536). 해결책에 대한 생각을 게시하십시오. 감사! – Ravi

관련 문제