0

我在注册表单中有以下代码。基本上,按钮调用一个动作(一个 Ejb 方法和一个作为实用方法的动作侦听器)。当用户提交注册表时,应该会出现一个 primefaces 对话框,告诉用户正在处理注册。提交表单后,相同的对话框就会消失。这可以通过Primefaces UIBlock来实现;但是,它要求 commandButton 启用 ajax。

我考虑过使用:onstart = 显示一些模式对话框和 onsuccess 或 on complete = 隐藏此对话框(<p:dialog widgetVar="dialog" ...),但此解决方案需要为 primefaces commandButton 启用 ajax。

关于如何在 PrimeFaces commandButton 中将 ajax 设置为 false 时如何实现这一点的任何线索?

谢谢

<h:form id="form_register">
            <p:panel id="panel_register">
<div align="center" style="padding: 5px;">
                    <p:commandButton id="register" ajax="true"
                        actionListener="#{mailBean.deliverEmail(newMember.email,newMember.name, newMember.username, newMember.password, newMember.isadmin)}"
                        action="#{memberController.register}" value="Register"
                        label="Register">
                        <f:setPropertyActionListener target="#{requestScope.wait}"
                            value="#{true}" />
                    </p:commandButton>
                </div>

<p:blockUI block="panel_register" trigger="register">
                    <h:outputText value="Please wait..." />
                    <br />
                    <p:graphicImage value="#{resource['gfx/gif.gif']}" />
                </p:blockUI>

编辑:谢谢大家。我误用了命令按钮中的更新属性。现在一切正常。

4

1 回答 1

0

您应该使用 onstart 和 oncomplete 操作来显示/隐藏对话框。

<p:commandButton id="register" onstart="dlg.show()" oncomplete="dlg.hide()" />
于 2013-02-04T19:18:32.720 回答