[SOLUCIONADO]Ocultar columnas para algunas filas específicas de un ml

Hola!

Les comento que en un ei_formulario_ml tengo que ocultar algunas columnas pero sólo para algunos de los registros que cumplan con determinadas condiciones. En principio me parece que se podría hacer desde php, utilizando métodos de la clase ei_formulario_ml o desde js utilizando un campo ef_oculto que indique si se debe ocultar o no las columnas en cada fila.

Desde php en la clase ei_formulario_ml no encontré ningún método que me permita ocultar las columnas de filas específicas y desde js cuando intento obtener el valor del ef_oculto con this.ef(‘nombre_ef_oculto’).ir_a_fila(filas[id_fila]).get_estado(); no me devuelve ningún valor y el script js no se ejecuta incorrectamente.
El script js tentativo sería algo así:


var filas = this.filas();
for (id_fila in filas) {
    var ocultar_columna = this.ef('nombre_ef_oculto').ir_a_fila(filas[id_fila]).get_estado();  
    if(ocultar_columna ==true)
         this.ef('columna_a_ocultar').ir_a_fila(filas[id_fila]).set_solo_lectura(true);
}

Estuve mirando la api de js y el ef_oculto no está en el listado de clases ni aparece como subclase directa de la clase ef.

Alguna sugerencia para ocultar columnas de determinados registros de un ei_formulario_ml desde php o de como leer un ef_oculto desde js?

Desde ya muchas gracias.

Saludos,
Fernando.

Hola Fernando,

esto que buscas hacer creo que lo podrias solucionar directamente desde el servidor, sin necesidad de agregar JS en el cliente, salvo que sea estrictamente necesario.
Los efs ocultos no viajan al cliente, su estado se mantiene en el servidor y son entregados nuevamente como datos cuando se lanzan los eventos.

Existe la posibilidad de definir a nivel del CI un metodo conf_fila__nombre_componente que recibe como parametro la fila del formulario_ML y mediante el cual podrias ocultar o colocar solo lectura el campo en cuestion. La idea es que ese metodo se va a disparar mientras se este sacando el layout del formulario y asi puedas configurar algo de ultimo momento.

Saludos

Lo probé y anduvo con el método dijiste, quedó algo así:


	function conf_fila__renglones($fila)
	{
		if (($this->s__datos[$fila]['columna_condicion'] == true) ) {
			$this->dep('renglones')->ef('descripcion')->set_solo_lectura(true);
		}else{
                    $this->dep('renglones')->ef('descripcion')->set_solo_lectura(false);
		}

	}

muchas gracias Richard!!!.

Saludos,
Fernando.