modal=true 的 Primefaces 对话框无法正常工作
Posted
技术标签:
【中文标题】modal=true 的 Primefaces 对话框无法正常工作【英文标题】:Primefaces dialog with modal=true not working properly 【发布时间】:2011-09-18 14:53:00 【问题描述】:我无法获得具有属性modal=true
的 (primefaces)dialog
框。它在 modal=false 下正常工作,但是当我尝试设置 modal=true
时,甚至对话框覆盖都变为非活动状态。
我怎样才能让它正常工作?
【问题讨论】:
这不是很多信息,您是否尝试设置属性appendToBody=true
?尝试发布您的代码。
感谢设置 appendToBody="true"
后现在可以使用!
有没有更简单的方法来控制覆盖部分的不透明度?您可以考虑将其发布为答案,以便我接受。
查看***.com/questions/18607921/…
【参考方案1】:
使用 Primefaces 5 appendTo="@(body)"
为我解决了这个问题。
【讨论】:
我在使用 RequestContext#execute("PF('widgetvar').hide()") 时遇到问题,我的对话框按预期隐藏,但半透明覆盖不会。代码在 PF 5.1 中运行良好,但在 5.2/5.3 中中断。该解决方案使事情再次正常运行(肯定错过了文档中的某些内容......)。 我确信这会起作用,但是在我的情况下,我的对话框在一个表单内(并且我在对话框内有表单字段),所以我无法将对话框移到正文,无需重新安排我的整个 xhml。将继续寻找解决方案,已从 PF 4 升级到 PF 5.3【参考方案2】:appendToBody=true 会导致与嵌套表单相关的问题 - 在对话框中输入的输入文本值被忽略,并且在对话框获得自己的非嵌套表单之前,ajax 请求不会通过。即使没有 modal=true,appentToBody=true 也会导致这种行为。
【讨论】:
有趣的是,5 或 6 年后仍然如此。你会认为他们现在已经找到了解决办法。【参考方案3】:在我将 p:dialog
移动到单独的 h:form
之前,我也一直在与奇怪的行为作斗争,此时对话框中的数据与 dataTable 中的行匹配,但覆盖并没有隐藏。
appendToBody=true
解决了覆盖问题。我仍然需要测试带有输入和操作的对话框。
【讨论】:
【参考方案4】:根据对话框部分的 Primefaces Guide 2.2:
appendToBody FALSE Boolean 将对话框追加为文档正文的子项。
当使用 Primefaces 对话框时,使用 appendToBody 属性来启用对话框覆盖。 Primefaces 对话框基于 YUI 对话框组件,该组件对模态对话框覆盖有类似的问题。
操作对话框覆盖将涉及覆盖覆盖的 CSS 类并指定您自己的不透明度。
【讨论】:
以上是关于modal=true 的 Primefaces 对话框无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
PrimeFaces 3.0 - <p:dataTable> 标题不与使用 scrollable="true" 对齐
使用o:form进行排序时删除了PrimeFaces数据表过滤includeRequestParams =“true”[重复]