Ejecución de eventos lanzados manualmente

Hola a todos, buen día.

Vuelvo a consultar algo que ya había consultado antes, pero para otra versión de Toba (ahora estoy trabajando en la 2.1), el hilo de la otra consulta es: http://foro.comunidad.siu.edu.ar/index.php?topic=6263.msg26160

La situación que se presenta es la siguiente: tengo un formulario con dos eventos (filtrar y cancelar) que actúa como filtro y un ml con un evento “modificación” que NO es implícito, éste ml tiene un php asociado y dentro de este php tengo definido un evt__validar_datos que verifica que antes de procesar (evento definido a nivel CI) se seleccione al menos un proyecto.

//---- Validacion general ----------------------------------
		//Valida que al menos una fila tenga seteado el campo 'cambiar'
		var id_fila = 0;
		var x = 0;
		{$this->objeto_js}.evt__validar_datos = function(es_inicial, fila)
		{
			var filas = this.filas()
			for (id_fila in filas) 
			{
    			if (this.ef('cambiar').ir_a_fila(filas[id_fila]).chequeado())
    			{
     				x = 1;
    			}
    			this.seleccionar(filas[id_fila]);
	     	}
     		if (x == 0)
     		{	  
     			notificacion.agregar('Para procesar debe seleccionar al menos un proyecto.');
     			return false;
     		}
     		x = 0;
     		return true;
		}

El hecho de quitar la opción de que sea implícito el evento del ml es para evitar que al momento de filtrar desde el formulario se verifique si seleccioné al menos un proyecto. Entonces lo que hago es definir en el php de la operación lo siguiente:

function extender_objeto_js()
	{
		echo "
		//---- Eventos ---------------------------------------------

		{$this->objeto_js}.evt__procesar = function()
		{
			//Disparo el evento modificación del ml_proyectos manualmente para evitar su ejecución en cada pedido de página
			this.dep('ml_proyectos').set_evento(new evento_ei('modificacion', true), true);
		}
		";
	}

y lanzar el evento modificación del ml manualmente solo al momento de procesar, pero el evt__validar_datos no se ejecuta.
También probé definiendo al evento como implícito

set_evento_implicito

pero tampoco funcionó.

¿Qué puedo estar haciendo mal?

Muchas gracias por los datos que puedan darme.

Saludos.
Alejandro.

Hola Alejandro,

el metodo evt__validar_datos no recibe ningun parametro, fijate si no te esta tirando ningun error en JS, se deberia estar llamando sin problemas ya sea que hagas un evento manual o no.

Saludos

Hola Richard, gracias por tu respuesta.

Estuve viendo y efectivamente el método evt__validar_datos no recibe parámetros, de hecho no los estaba ocupando. Se los quité pero igual sigue sin invocarse cuando le quito le opción de implícito desde el toba_editor, tampoco tira ningún error JS (lo verifiqué con Firebug)

¿Qué otra cosa podría estar pasando o verificar?

Gracias!

Hola Alejandro,

es bastante raro lo que planteas, ya que la validacion del formulario forma parte del proceso de submit, de hecho esta dentro del metodo puede_submit. Y del codigo se ve que el evento manual pide que se haga la validacion y el submit.

La cuestion es que no valida nada o que se rompe la navegacion directamente?. Probaste retornando siempre false desde el metodo validar_datos?

Saludos