我的其中一个页面上有一个对话框。打开很好。如果您使用页面上的按钮,它会关闭,效果很好。但是,如果您尝试“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>
预先感谢您的帮助。
最佳答案
您的问题是您不想将 onclick
属性与 Primefaces 按钮一起使用来显示和隐藏对话框。由于这些按钮未启用 Ajax,因此在回发之前可能不会调用 click 事件。
您应该使用 oncomplete
属性。这将通知 Javascript 事件仅在服务器回发发生后执行,这意味着 show()
将显示已更新的对话框内容,而 hide()
仅在发生后发生服务器端执行完成。
关于jsf - 对话框不会关闭 primefaces,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12644108/