我无法使用属性dialog
获得(primefaces)modal=true
框。它与modal = false一起正常工作,但是当我尝试设置modal=true
时,即使对话框覆盖也变为无效。
如何让它正常工作?
答案 0 :(得分:17)
使用Primefaces 5 appendTo="@(body)"
为我解决了这个问题。
答案 1 :(得分:12)
根据对话部分的Primefaces Guide 2.2:
appendToBody FALSE Boolean将对话框追加为文档正文的子对象。
使用Primefaces对话框时,使用appendToBody属性可以找到对话框叠加层。 Primefaces对话框基于YUI对话框组件,对于模态对话框叠加层有类似的问题。
操作对话框叠加层将涉及覆盖叠加层的CSS类并指定自己的不透明度。
答案 2 :(得分:9)
在将p:dialog
移动到单独的h:form
之前,我也遇到了奇怪的行为,此时对话框中的数据与dataTable中的行匹配,但叠加层未隐藏。
appendToBody=true
解决了叠加问题。我仍然需要使用输入和操作来测试对话框。
答案 3 :(得分:1)
appendToBody = true会导致与嵌套表单相关的问题 - 在对话框中输入的输入文本值将被忽略,并且在对话框获得自己的非嵌套表单之前,ajax请求不会通过。即使没有modal = true,appentToBody = true也会导致此行为。