Modal ConfirmDialog over modal Dialog - >一切都被阻止了

时间:2012-01-23 11:11:13

标签: java jsf primefaces

我有一个使用PrimeFaces 3.0.1在模态对话框上显示的模态ConfirmDialog。 如果ConfirmDialog为opend,则整个页面都会被锁定,包括ConfirmDialog本身... rien ne va plus

我找到了一个类似于http://code.google.com/p/primefaces/issues/detail?id=576的Primefaces的Bugreport,但由于这个bug与布局组件相关,所以这并不适用于我的情况。

是否有变通方法?

谢谢!

3 个答案:

答案 0 :(得分:27)

使用appendToBody="true"标记的p:dialog属性来解决此问题。

来自PrimeFaces 5的属性已更改。如果您使用的是5+,请使用appendTo="@(body)",请参阅迁移指南:migration guide

(了解Primefaces版本会很有帮助)

答案 1 :(得分:4)

在它适合我的标签中使用appendTo =“@(body)”

答案 2 :(得分:1)

由于我在Dialog中需要一个提交按钮,我不幸地不得不搜索不同的解决方案,然后appendToBody =“true”。对于遇到同样问题的每个人,都有解决方案:

如果您想要以下内容:

<p:dialog modal="true">
    <h:form>
        ...
        <p:confirmDialog>
            <p:commandButton action="#{transportBean.execute}" type="submit" .../>
        </p:confirmDialog>
        ...
    </h:form>
</p:dialog

这将导致完全阻止的页面。将表单元素拉高两个元素,它将起作用:

<h:form>
    <p:dialog modal="true">        
        ...
        <p:confirmDialog>
            <p:commandButton action="#{transportBean.execute}" type="submit" .../>
        </p:confirmDialog>
        ...        
    </p:dialog
</h:form>