1

我有一个用于搜索的 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 以避免上述问题。

4

0 回答 0