Primefaces对话框 - 有条件地显示。 javascript代码无效

时间:2011-09-02 09:34:43

标签: primefaces spring-webflow-2

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

我正在使用Spring web-flow 2.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个对话框。你能告诉我为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

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

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

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