confirmDialog出现但立即消失

时间:2012-10-27 13:50:41

标签: jsf primefaces

我在SA和Primefaces论坛上已经阅读了类似的问题,但它没有帮助。这是xhtml:

<h:form id="form2" prependId="false">
    <p:remoteCommand name="sendNameClicked" actionListener="#{reportBean.passName}"/>
    <p:remoteCommand name="updateDialog" update=":form3:dialogBox"/>

    <p:commandButton style="display: none" id="displayDialog" type="button" onclick="cd.show(); return false;"/>
</h:form>
<h:form id="form3">
    <p:confirmDialog id ="dialogBox" message= "#{reportBean.getClickedAuthorLaius()}"
                     header="#{reportBean.nameClicked}#{reportBean.authorClicked.mostRecentAffiliation}"
                     widgetVar="cd"
                     severity="info"
                     >
        <h:outputText styleClass="ui-widget"  value="" escape="false" />
        <p:commandButton value="Draw the ring of #{reportBean.obtainFullName()}?" actionListener ="#{controllerBean.prepareNewSearch()}" action ="index?faces-redirect=true" oncomplete="cd.hide();"/>
        <p:commandButton value="No, stay on this page" onclick="cd.hide();" type="button" />
    </p:confirmDialog>
</h:form>

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

在发送表单提交请求之前触发onclick。到达表单提交响应后执行update。因此,确认对话框在打开后会更新,从而再次获得默认外观。

您需要在更新后打开。使用oncomplete属性代替onclick

<p:commandButton ... oncomplete="cd.show()"/>