messages en zk
Hola a todos como están, sucede que necesito colocar mensages en la vista en una página web de zk, lo estoy haciendo desde el código el controller, de la siguiente manera:
Messagebox.show("El Campo fue agragado con Exito", "Error", Messagebox.OK, Messagebox.INFORMATION); pero este mensaje no dura sucede que no espera a que yo de click en ok sino que desaparece de inmediato, además necesito colocar messages para los errores en los formularios y cosas asi, pero no se como se realiza esto en el framework de zk, si alguno de ustedes sabe como hacer esto agradezco mucho cualquier ayuda, muchas gracias.
- Inicie sesión o regístrese para enviar comentarios
Constraints
Probe tu sentencia y no sucede lo que mencionas, podrias colocar un poco más de código? Para colocar mensajes de error en los formularios puedes usar constraints, checa este link http://books.zkoss.org/wiki/ZK_Component_Reference/Base_Components/Input...
Messagebox
Por ejemplo para la eliminaciòn, luego de haber realizado todo el proceso, entonces muestro este mensaje en pantalla, porque no se de que otra forma lo podrìa hacer en zk estilo como se hace en struts o jsf con messages, bueno volviendo al còdigo lo que sucede es que si por ejemlo colocase esta seguro que desea eliminar el campo, esto no se porque no funciona, sino que se ejecuta el còdigo embebido en este condicional, sin importar si doy click o no sobre el mismo:
Messagebox.show("La Competencia fue eliminada con Exito", "Error", Messagebox.OK, Messagebox.INFORMATION);
Executions.sendRedirect("/view/Reglas/detalleRegla.zul");
lo he igualadao a un int
int rta = Messagebox.show("La Competencia fue eliminada con Exito", "Error", Messagebox.OK, Messagebox.INFORMATION);
y luego hago un if como
if (rta==1)-->supiniendo que ok toma el valor de 1.
pero de todas formas se ejecuta todo el codigo no hace la respectiva pausa a esperar que selecciona el usuario, muchas gracias por la ayuda que me puedan brindar
Threads
El problema que tienes con el Messagebox se debe a los hilos, la llamada Messagebox.show() se ejecuta en otro hilo, por lo que la ejecución continua en la siguiente linea que tengas en el código, en tu caso
Executions.sendRedirect("/view/Reglas/detalleRegla.zul");
, la cual redirige la pagina actual a otra, por lo que el usuario no puede realizar acción alguna sobre el mensaje. Por otra parte la forma de determinar el botón que el usuario presiona en el Messagebox se debe hacer mediante constantes propias de ZK, un ejemplo:"Question", Messagebox.OK | Messagebox.CANCEL,
Messagebox.QUESTION,
new EventListener(){
public void onEvent(Event e){
if("onOK".equals(e.getName())){
alert("user click ok ");
}else if("onCancel".equals(e.getName())){
alert("user click cancel ");
}
}
}
);
Lo que se esta haciendo en el fragmento de código anterior, es definir un EventListener para responder a los eventos sobre el Messagebox. Ahora si lo que deseas es redireccionar la página cuando el usuario de clic en el boton OK, simplemente coloca la sentencia en la sección del if correspondiente.
Fuente: http://books.zkoss.org/wiki/ZK%20Component%20Reference/Supporting%20Clas...