我有一个这样的primefaces对话框:
<p:dialog widgetVar="dlg" width="320" height="220" modal="false" closable="false" showHeader="false" resizable="false" position="right,top">
如果我点击页面中的某个元素,我想将此对话框更改为模态。是否有客户端API?
尝试
onclick="dlg.setModal(true);"
没有成功。方法setModal()不存在。 是否可以通过这种方式更改对话框而无需往返服务器?
答案 0 :(得分:0)
你有这个属性(模态)现在它假设置为madal =“true”
答案 1 :(得分:0)
您是否使用Firefox与Firebug或其他一些可以显示DOM元素dlg
的浏览器/ Web开发人员工具?
在那里,您可以发现dlg
包含方法show()
和hide()
,以及enableModality()
和disableModality()
。这些(几乎)是你想要的。
不幸的是,enable...
和disable
没有(正如人们所想的那样)设置一个选项,使对话框在显示时变为模态。相反,他们显示或隐藏“停电”div。因此,当您需要动态模式对话框时,不要通过Javascript调用dlg.show()
,而是调用dlg.enableModality(); dlg.show()
,反之亦然,以便隐藏。
修改强>
还有属性dlg.cfg
,其中包含一些设置。看来,如果你只是设置dlg.cfg.modal=true
(当时是否存在该设置),那么下次dlg
显示时,它是模态的(但是,与在xhtml中设置它不同,它会仍然是可拖动和可调整大小的。)