oncomplete不会隐藏<p:dialog dynamic =“true”>

时间:2016-03-17 09:50:15

标签: jsf jsf-2 primefaces dialog

我有一个<p:dialog dynamic="true">,显示在<p:commandButton>的开头。

<h:form id="form">
    <p:commandButton value="#{bundleComunes.guardar}" actionListener="#{saveBB.save}" onstart="PF('saveDialog').show()" update="@form" oncomplete="PF('saveDialog').hide()" />  
    <p:dialog dynamic="true" widgetVar="saveDialog">  
        Guardando<br></br> 
        <p:graphicImage value="/img/ajaxloadingbar.gif" />
    </p:dialog>
</h:form>

它显示对话框,但永远不会隐藏完成​​。但是如果我删除dynamic="true",它就可以了。

2 个答案:

答案 0 :(得分:1)

<h:form>
    <p:commandButton ... update="@form" />
    <p:dialog dynamic="true">  
        ...
    </p:dialog>
</h:form>

您正在更新动态对话框所在的表单,导致它被损坏,因为它在更新后不再是打开时的对话框。

update="@form"更改为更具体的内容,不包括对话框,或者更好的是,将对话框移到表单之外,最好移到正文的最底部。

<h:form>
    <p:commandButton ... update="@form" />
</h:form>
...
<p:dialog dynamic="true">  
    ...
</p:dialog>

答案 1 :(得分:0)

我刚刚在glassfish上测试过,它工作正常 我想你应该看看#{saveBB.save}并检查它是否会抛出任何异常。