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

发布于 2024-12-03 03:58:00 字数 1663 浏览 3 评论 0原文

我想在单击 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 个对话框。你能告诉我为什么会这样吗?

I want to show a dialog box on the click of a primefaces commandbutton. Before the dialog box , I need to check a condtional.

I am using Spring web-flow 2.3.0.

So I am doing it like this ,

And the Dialog Box is

I am not able to show this dialog box based on this condition.

Please help me ,any pointers?

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

So I have changed my code as per below

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

And the dialog box is

                <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>

But when I am clicking on the command link , I am getting 3 dialog boxes. Can you please tell me why it is so?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜血缘 2024-12-10 03:58:00

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

您应该使用commandButton 的oncomplete 属性而不是onclick。 Click javascript 事件发生在页面回发之前,可​​能会导致您的对话框由于页面重新加载而不会出现。

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

Somebody else just posted the same problem! :)

You should use the oncomplete attribute instead of onclick of the commandButton. The click javascript event occurs before the page posts back, likely causing your dialog not to appear because of the page reloading.

oncomplete="dlg3.show()" will display the dialog AFTER the postback.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文