2013-08-14 4 views
0

이 코드에 문제가 있습니다. 다른 facelet으로 가기 전에 조치를 수행 할 popupPanel을 표시하려고합니다. 문제는 바로 팝업입니다. 새 Facelet이 렌더링되기 전에 비동기 호출과 관련이 있다고 생각하지만 해결 방법을 모르겠습니다.a4j : commandLink 액션 및 onclick 팝업 패널이있는 비동기 호출

감사

   <h:outputText value="Do you want to save your changes?"/> 
       <br/><br/><br/> 
       <a4j:region id="panel-region"> 
         <h:commandButton action="#{saveReminderBackingBean.saveBundle}" value=" Yes " onclick="#{rich:component('savePopupPanel')}.hide();bm.showLoading()" styleClass="pnx-btn pnx-btn-secondary " style="padding-left:8px;padding-right:8px"/> 
         &nbsp;&nbsp;&nbsp;&nbsp; 
         <h:commandButton action="#{saveReminderBackingBean.clearFlags}" value="No" onclick="#{rich:component('savePopupPanel')}.hide();bm.showLoading()" styleClass="pnx-btn pnx-btn-secondary " style="padding-left:8px;padding-right:8px"/> 

       </a4j:region> 
       <br/> 
       </div> 
      </rich:popupPanel> 

답변

0

<h:commandButton/> 전체 JSF POST 요청 생성되므로 자동으로 닫힐 것이다 도시 된 팝업 트리거 전체 페이지가 요청이 끝날 때 렌더링됩니다.

당신은 <a4j:commandButton/>이 부분 요청보다는 전체 요청을 트리거하는 <a4j:commandButton/>

<a4j:commandButton action="#{saveReminderBackingBean.saveBundle}" value=" Yes " onclick="#{rich:component('savePopupPanel')}.hide();bm.showLoading()" styleClass="pnx-btn pnx-btn-secondary " style="padding-left:8px;padding-right:8px"/> 
        &nbsp;&nbsp;&nbsp;&nbsp; 
    <a4j:commandButton action="#{saveReminderBackingBean.clearFlags}" value="No" onclick="#{rich:component('savePopupPanel')}.hide();bm.showLoading()" styleClass="pnx-btn pnx-btn-secondary " style="padding-left:8px;padding-right:8px"/> 

와 명령 단추를 교체해야합니다. 결과적으로 페이지가 다시로드되지 않고 팝업 창이 열리게됩니다.