Primefaces对话框-有条件地显示它。javascript代码不工作

Primefaces对话框-有条件地显示它。javascript代码不工作,primefaces,spring-webflow-2,Primefaces,Spring Webflow 2,我想在单击按钮时显示一个对话框。在对话框之前,我需要检查一个条件 我使用的是SpringWebFlow2.3.0 所以我就这样做, 对话框是 基于此条件,我无法显示此对话框 请帮帮我,有什么建议吗 SWF 2.3.0 Primefaces 2.2.1 JSF 2 Spring Security 3 Spring 3.1.0M1I EhCache Apache Tomcat 6.0 STS 2.5.1 因此,我已根据以下内容更改了我的代码 <p:com

我想在单击按钮时显示一个对话框。在对话框之前,我需要检查一个条件

我使用的是SpringWebFlow2.3.0

所以我就这样做,

对话框是

基于此条件,我无法显示此对话框

请帮帮我,有什么建议吗

SWF 2.3.0 Primefaces 2.2.1 JSF 2 Spring Security 3 Spring 3.1.0M1I EhCache Apache Tomcat 6.0 STS 2.5.1

因此,我已根据以下内容更改了我的代码

                    <p:commandLink id="addRequest" immediate="true" value="addreq"
                    oncomplete="dlg3.show()" update="dialogPanel">
                    <f:setPropertyActionListener
                        value="#{searchHandler.selectedAccIns}"
                        target="#{reqSearchHandler.checkAccStatus}" />
                </p:commandLink>

对话框是

                <p:outputPanel id="dialogPanel"
                rendered="#{not reqSearchHandler.accStatusFlag}">
                <p:dialog header="Effect Dialog" widgetVar="dlg3"
                    showEffect="bounce" hideEffect="explode" height="200">
                    <h:outputText
                        value="Account is #{searchHandler.selectedAccIns.accStatusDesc}" />
                    <h:outputText value="Do you want to continue?" />
                    <div align="left">
                        <p:commandButton value="Yes" action="accept" />
                        <p:spacer width="960" height="5" />
                        <p:commandButton value="No" action="cancel" />
                    </div>
                </p:dialog>
            </p:outputPanel>


但当我点击命令链接时,我会看到3个对话框。你能告诉我为什么会这样吗?

其他人刚刚发布了相同的问题!:)

您应该使用commandButton的
oncomplete
属性,而不是
onclick
。click javascript事件发生在页面发回之前,可能会因为页面重新加载而导致对话框不显示


oncomplete=“dlg3.show()”
将在回发后显示对话框。

其他人刚刚发布了相同的问题!:)

您应该使用commandButton的
oncomplete
属性,而不是
onclick
。click javascript事件发生在页面发回之前,可能会因为页面重新加载而导致对话框不显示


oncomplete=“dlg3.show()”
将在回发后显示对话框。

这似乎是一个完全不同的问题。将来,请为新问题创建一个新问题。@Suman,如果Primefaces对话框与异步发回的其他元素位于同一表单中,则这是Primefaces对话框的问题。尝试将对话框放置在一个单独的表单中,并设置对话框的
appendToBody=“true”
属性,这个问题应该得到解决。现在看来,这是一个完全不同的问题。将来,请为新问题创建一个新问题。@Suman,如果Primefaces对话框与异步发回的其他元素位于同一表单中,则这是Primefaces对话框的问题。尝试将对话框放置在单独的表单中,并设置对话框的
appendToBody=“true”
属性,这个问题应该得到解决。