我有一个用于搜索的 ajaxstatus 和对话框
<h:body>
<p:ajaxStatus onstart="statusDialog.show();" onsuccess="statusDialog.hide();"/>
<p:dialog id="loading" modal="true" widgetVar="statusDialog" header="" draggable="false" closable="false">
<p:graphicImage value="/images/ajax-loader.gif" />
</p:dialog>
对话部分
<p:dialog id="showDial" header="Search" widgetVar="srch" resizable="false" >
<h:panelGrid id="searchGrid" columns="2" cellpadding="10" >
<h:outputLabel id="srchIdLbl" value="Employee ID:" />
<p:inputText id="srchIdTxt" value="#{employee.employeeId}" />
<p:commandButton id="search1" value="Search" type="submit" action ="#{employee.search()}"
update="patientTbl"/>
<p:commandButton id="reset1" value="Reset" type="reset" />
</h:panelGrid>
</p:dialog>
上面的代码工作正常,它显示加载对话框。但是一旦搜索完成,对话框将保留在屏幕中。我在 commandButton id="search1" 中添加了以下代码以关闭对话框
onComplete="showDialog.hide()"
*问题: *如果我添加上面的行,则不会显示 AjaxStatus。我想知道为什么它不显示。
我还尝试将以下代码添加到 commandButton id="search1"
onclick="statusDialog.show()" onselect="statusDialog.show()" onmousedown="statusDialog.show()" onComplete="showDialog.hide() statusDialog.hide()"
问题在上面的代码中,对话框的背景被禁用,直到 ManagedBeans 代码完成并且对话框也关闭,但是当我单击搜索按钮时,即使单击重置按钮,它也会加载先前输入的搜索参数,数据不会消失。
我如何克服先前输入的数据不去的上述问题,或者如何以更好的方式执行 Ajaxstatus 以避免上述问题。