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.