2013-08-14 5 views
0

У меня возникла проблема с этим кодом, я пытаюсь отобразить popupPanel для выполнения действия перед тем, как перейти к другому лицу, проблема в том, что всплывающие окна для просто за мгновение до рендеринга нового лица, я думаю, что он имеет какое-то отношение к асинхронным вызовам, но я не знаю, как это исправить.a4j: commandLink action и 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 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"/> 

<a4j:commandButton/> вызывает частичный запрос, а не полный запрос. В результате страница не будет перезагружена, и ваше всплывающее окно останется открытым