我必须在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 :(得分:2)
将onclick
中的p:commandbutton
替换为oncomplete
。单击按钮时会立即发生onclick
事件。由于这是AJAX按钮(在Primefaces中这是默认设置),因此AJAX请求和对话框打开之间将存在竞争条件。使用oncomplete
时,将在AJAX请求完成后调用它。