2013-03-13 170 views
0

我必須在primefaces對話框中實現搜索功能。提交搜索命令按鈕後,搜索旁邊的表需要更新。但每次我點擊搜索按鈕彈出窗口關閉。請guide.Below是我的代碼片段供參考:primefaces彈出關閉

...... 
    <p:commandButton id="search" value="Search" actionListener="#{createTicketBaseBean.searchUserFromList}" update="@form" onclick="dlg.show()"></p:commandButton> 

     </h:panelGrid> 

    </h:panelGroup> 
<h:panelGroup style="float:right" > 

     <p:dataTable id="table" var="user" value="#{createTicketBaseBean.userList}" selection="#{createTicketBaseBean.selectedUser}" selectionMode="single" rowKey="#{user.email}" > 
     <p:column headerText="Name" > 

     <p:commandLink id="nameselect" value="#{user.name}" onclick="dlg.hide()"/> 

     </p:column> 

     <p:column headerText="Email"> 
      <h:outputText value="#{user.email}" /> 
     </p:column> 

     <p:column headerText="Department"> 
      <h:outputText value="#{user.department}" /> 
     </p:column> 


    </p:dataTable> 
+0

對話在哪裏?它與'p:commandButton'有相同的'形式嗎? – partlov 2013-03-13 08:21:09

+0

是上面的代碼是對話框。 – Cyd 2013-03-13 09:02:41

回答

2

p:commandbutton替換onclickoncomplete。當按鈕被點擊時,事件正在發生。由於這是AJAX按鈕(在Primefaces中這是默認值),因此AJAX請求和對話框打開之間將存在競爭條件。當使用oncomplete時,它將在AJAX請求完成後調用。

+0

我試過了,但問題仍然存在。上面的代碼再次是駐留在對話框中的代碼。而且我需要ajax-submit,它會在彈出窗口內更新我的表而不關閉它。 – Cyd 2013-03-13 09:29:48

+0

你的'h:form'標籤位於何處? 「對話」內部還是外部? – partlov 2013-03-13 09:35:45

+0

其外部像這樣 - >> ... .. ... ..下面是我最新的代碼: Cyd 2013-03-13 09:43:43