如何在p:commandButton操作后关闭p:对话框?

时间:2014-07-15 21:57:50

标签: jsf primefaces

我点击p:dialog行后会显示p:dataTable。我在p:commandButton中有一个p:dialog,它有一个action,如下所示:

<p:commandButton value="Cambiar" action="#{adminUsuarios.cambiarPerfil()}" update="tblUsuarios" />

方法cambiarPerfil()

public void cambiarPerfil() {
    // More stuff here
    this.listaUsuarios = null; // Clear the list
}

效果不错但我想在p:dialog之后关闭 p:commandButton action

这是对话框:

<h:form id="myForm">
    <!-- More stuff-->
    <p:dialog id="myDialog" widgetVar="editarDialog" header="Editar perfil de usuario #{adminUsuarios.usuarioSeleccionado.id_User}" resizable="false" width="400" showEffect="size" hideEffect="size">
        <p:commandButton value="Cambiar" action="#{adminUsuarios.cambiarPerfil()}" update="tblUsuarios" />
    </p:dialog>
</h:form>

1 个答案:

答案 0 :(得分:5)

您需要在oncomplete

中添加commandButton客户端方法
<h:form id="myForm">
    ...
    <p:dialog id="myDialog" widgetVar="editarDialog" ...>
        <p:commandButton value="Cambiar" action="#{adminUsuarios.cambiarPerfil()}" update="tblUsuarios" oncomplete="editarDialog.hide();"/>
    </p:dialog>
</h:form>

如果您正在使用PF5.0,则可能需要将其更改为oncomplete="PF('editarDialog').hide();",其中editarDialog是您的对话框的widgetVar