Enlaces

   

Menú Principal  

   

Galerías  

   

Formulario de Acceso  

   

Prime faces: Ocultar diálogo luego de validar todos los campos

Detalles

Utilizando Primefaces, necesitaba ocultar un diálogo luego de que realice una determinada acción, pero siempre que todo haya ocurrido satisfactoriamente, sin embargo, luego de que validaba y aparecían los errores, el diálogo se cerraba automáticamente, por lo cual encontré esta forma para que primero valide y si todo sucedió correctamente el diálogo se me cerrara:

Añadí la siguiente instrucción en el botón que ejecuta la acción:

En la Vista

 <p:dialog id="dlgNuevaCuenta" header="Nueva cuenta" 

 widgetVar="wdlgCuentaNueva" modal="true" closable="false" 

    resizable="false" showEffect="clip" hideEffect="fold"> 

 <h:form id="frmNuevaCtaExt"> 

 <p:commandButton value="Guardar" 

     action="#{cHBCuentaExterna.insertarCuentaExterna()}"

     oncomplete="handleLoginRequest(xhr, status, args)"      

                    update=":frmCuentas:tblCuentas :frmCuentas:mensajes"/>

</h:form>

 </p:dialog>

 

<script type="text/javascript">  

    function handleLoginRequest(xhr, status, args) {  

        if(args.validationFailed || !args.datosOK) {  

            PF('wdlgCuentaNueva').jq.effect("shake", { times:5 }, 100);  

        }   

        else {  

            PF('wdlgCuentaNueva').hide();          

        }  

    }  

</script>

 

Y en el BEAN

public function void insertarCuentaExterna(){

boolean todocorrecto=false;

....algún proceso

//Envío el parámetro a la vista

RequestContext context = RequestContext.getCurrentInstance();  

     context.addCallbackParam("datosOK", sonDatosCorrectos);  

}

 

 

Espero les sirva, un abrazo.....

   
© MAYUQI