2011-05-10 7 views
4

팝업 (pp1)의 저장 버튼을 클릭하면 프로젝트 목록이 업데이트됩니다. 그러나 프로젝트 목록에서 업데이트 버튼을 누르면 렌더링 ID : form1 : pp1이 표시되지 않습니다. 렌더링 될 때 오류가 발생합니다. render = "@ all"이라면 작동하지만 좋지는 않습니다. 당신이 prependId=false 당신의 panelGroup의 ID가 pp1 대신 form1:pp1이다 사용하는 경우jsf 2.0 f : 아약스 렌더링 ID를 찾을 수 없음

<h:form id="form1" prependid=false> 
<h:panelGroup id="projects"> 
<ui:repeat var="action" value="#{dadadada}" varStatus="status"> 
<h:commandButton value="Save"> 
//gives id not found error 
<f:ajax event="click" execute="@form" render=":form1:pp1" listener="#{fsfsfsfsfs}" /> 
</h:commandButton> 
</ui:repeat> 

</h:panelGroup> // project panel group 

//popup 
<h:panelGroup id="pp1"> 
<div id="popup2" class="popup_block"> 

//save button in the popup 
<div class="popupBody_save2"> 
      <h:commandButton image="resources/images/saveBtn.gif" value="Save"> 
      <f:ajax event="click" execute="@form" render="projects" listener="#{dfsfssfs}" /> 
      </h:commandButton> 
     </div> 

</div> 
</h:panelGroup> 

</h:form> 

답변

0

는 (오류 : 'PP1 : Form1에'<f:ajax> 알 수없는 ID를 포함). ("prependid"대신 속성 "prependID"에 오타가 있다고 가정하십시오)

+0

예, 그 오자 .. 나는 그 방법도 시도했다. 그러나 행운이 없다. – Amilask

+0

생성 된 HTML 소스를보고 panelGroup의 실제 ID를 찾으려고 노력한다. –

+0

그것의 pp1, 나는 render = ": pp1"을 시도했지만 prependId = false와 동일한 결과 인 – Amilask

6

이 (가) 양식에 있기 때문에 :form1:pp1이 작동하지 않습니다. pp1은 그 자체로 UINamingContainer 구성 요소 인 <ui:repeat>과 동일한 범위의 구성 요소를 찾고 있기 때문에 작동하지 않습니다.

웹 브라우저에서 JSF 페이지를 열고 오른쪽에 소스보기을 생성하여 생성 된 HTML을 가져 오십시오. <h:panelGroup id="pp1">에 의해 생성 된 HTML 요소를 찾습니다. 그것은 당신이 render 속성에 정확히:로 시작이 ID를 사용하기 위해 필요한이

<span id="foo:bar:pp1"> 

처럼 보일 것이다. 자동 생성 된 ID 부분과 같은 j_id0이 있다면

<f:ajax render=":foo:bar:pp1"> 

는, 당신은 문제의 상위 구성 요소에게 고정 ID를 제공해야합니다.

+0

을 사용하여 render = ": pp1"isn을 사용하여 액세스 할 수 있어야하는'' 그것? 하지만 ID는 여전히 요소를 찾을 수 없습니다. – Amilask

관련 문제