2

我的一个页面上有一个对话框。它打开很好。如果您使用页面上的按钮,它会正常工作,它会关闭。但是,如果您尝试将“x”退出对话框,它将不会关闭。我相信这与我在对话框中有一个输入字段这一事实有关,但我不确定。如果这是一个骗局,我很抱歉,我找不到类似的帖子。

        <p:commandButton action="#{phoneListBean.debugger}"
            value="Merge Unqiue" onclick="mdlg.show();"
            update=":pmsg, :createNewPanel, :listform" />

        <p:dialog id="mdialog" header="Merge Unqiue" widgetVar="mdlg"
            appendToBody="true">
            <h:form id="mform">
                <h:panelGrid columns="2" cellpadding="5" id="m">
                    <h:outputLabel for="listName" value="Enter the List Name:" />
                    <p:inputText value="#{phoneListBean.mergeList.name}" id="listName" />


                    <p:commandButton action="#{phoneListBean.mergeUnique}"
                        value="Merge Unqiue" update=":pmsg, :listform"
                        onclick="mdlg.hide();" />
                </h:panelGrid>
            </h:form>

        </p:dialog>

在此先感谢您的帮助。

4

1 回答 1

4

您的问题是您不想使用onclick带有 Primefaces 按钮的属性来显示和隐藏对话框。在回发之前可能不会调用 click 事件,因为这些按钮未启用 Ajax。

相反,您应该使用oncomplete属性。这将通知 Javascript 事件仅在服务器回发发生后执行,这意味着show()将显示已更新的对话框内容,并且hide()仅在服务器端执行完成后才会发生。

于 2012-09-28T18:09:12.630 回答