2013-02-04 52 views
0

我在註冊表單中有以下代碼。基本上這個按鈕調用一個動作(一個Ejb方法和一個Action監聽器,這是一個實用的方法)。 當用戶提交註冊表單時,會出現一個primefaces對話框,告訴用戶正在處理註冊。提交表單後,相同的對話框消失。這可以通過Primefaces UIBlock;然而,它需要commandButton被啓用。PrimeFaces commandButton&UIBlock

我想過使用:OnStart中=顯示一些模態對話框&的onSuccess或完整=隱藏此對話框(<p:dialog widgetVar="dialog" ...),但這種解決方案需要阿賈克斯primefaces命令按鈕來啓用。

關於如何在PrimeFaces commandButton中將ajax設置爲false時如何實現此目的的任何線索?

感謝

<h:form id="form_register"> 
      <p:panel id="panel_register"> 
<div align="center" style="padding: 5px;"> 
        <p:commandButton id="register" ajax="true" 
         actionListener="#{mailBean.deliverEmail(newMember.email,newMember.name, newMember.username, newMember.password, newMember.isadmin)}" 
         action="#{memberController.register}" value="Register" 
         label="Register"> 
         <f:setPropertyActionListener target="#{requestScope.wait}" 
          value="#{true}" /> 
        </p:commandButton> 
       </div> 

<p:blockUI block="panel_register" trigger="register"> 
        <h:outputText value="Please wait..." /> 
        <br /> 
        <p:graphicImage value="#{resource['gfx/gif.gif']}" /> 
       </p:blockUI> 

編輯:感謝球員。我誤用了commandButton中的屬性更新。現在事情工作正常。

+0

'ajax'屬性的默認值爲true。你在哪裏讀過這個動作,當'ajax'爲真時不會被調用?這是不正確的。 – partlov

+0

「如您所知Primefaces commandButton在其ajax屬性設置爲true時不會觸發該操作」**這是明示錯誤** –

+0

如果您的操作未被調用,則代碼中存在其他一些問題,請嘗試解決它們。從後臺bean發佈'register'方法。你爲什麼要用'bloskUI'來打開對話框,只需按下AJAX事件即可。 – partlov

回答

0

您應該使用onstart和oncomplete操作來顯示/隱藏對話框。

<p:commandButton id="register" onstart="dlg.show()" oncomplete="dlg.hide()" /> 
+1

我認爲'onstart'應該被用來代替'onclick'用於AJAX請求。 – partlov

+0

是的onstart&onsuccess是我用來顯示和隱藏對話框的屬性。 – Hanynowsky

+0

我編輯了您的答案並將其標記爲已接受。 – Hanynowsky

相關問題