2014-07-15 70 views
3

我有一個p:dialog顯示在單擊p:dataTable行後。我在p:dialog一個p:commandButton,它有一個action這樣的:如何在p:commandButton動作後關閉p:對話框?

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

的方法cambiarPerfil()

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

這工作正常,但我想p:commandButton action後關閉p:dialog

這是對話框:

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

回答

4

您需要在您的commandButton添加oncomplete客戶端的方法。

<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

+1

我也是這樣做的:'RequestContext context = RequestContext.getCurrentInstance(); 'cambiarPerfil()'方法中的context.execute(「editarDialog.hide();」);'' –

+0

@KazMiller所以我*(*我的評論抄襲了電影The Shawsank Redemption) – dirai