ap:commandButton操作后如何关闭ap:dialog?

Kaz*_*ler 3 jsf primefaces

单击p:dialogp:dataTable行后,我显示了一个。我有一个p:commandButtonp:dialog它有一个action像这样的:

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

方法cambiarPerfil()

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

那很好,但是我想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>
Run Code Online (Sandbox Code Playgroud)

rio*_*n18 6

您需要在中添加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>
Run Code Online (Sandbox Code Playgroud)

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