【问题标题】:Primefaces dialog with modal=true not working properlymodal=true 的 Primefaces 对话框无法正常工作
【发布时间】:2011-09-18 14:53:00
【问题描述】:

我无法获得具有属性modal=true 的 (primefaces)dialog 框。它在 modal=false 下正常工作,但是当我尝试设置 modal=true 时,甚至对话框覆盖都变为非活动状态。

我怎样才能让它正常工作?

【问题讨论】:

  • 这不是很多信息,您是否尝试设置属性appendToBody=true?尝试发布您的代码。
  • 感谢设置 appendToBody="true" 后现在可以使用!
  • 有没有更简单的方法来控制覆盖部分的不透明度?您可以考虑将其发布为答案,以便我接受。

标签: javascript css jsf primefaces


【解决方案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 类并指定您自己的不透明度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 2014-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-18
      • 2014-06-09
      相关资源
      最近更新 更多