UNPA_Metodo de un Combo dentro de un filtro

Estimados…
El motivo del presente es para realizar una consulta, en la UNPA estamos trabajando en la generación de un listado y estamos utilizando para el mismo un filtro.
Dentro de este filtro tenemos un combo que queremos que se cargue una vez que se haga clic en el icono de la flechita.
Cual sería el metodo que deberiamos emplear para este caso?

Actualmente estamos trabajando con WebServices para obtener la lista del combo, pero si perdemos la conexión con el mismo, se presenta una pantalla vacia del filtro.
Para que esto no ocurra optamos por la opción de cargar el combo con la opción lista fija…con la palabra seleccionar y lo que queremos hacer es que al seleccionar una opción recién se cargue el combo.

Desde ya muchas gracias por su respuesta!

Hola Daniel,

a ver si entiendo, tienen el combo con una opcion ‘seleccionar’ y cuando se despliegue quieren que se carguen las opciones, esto es asi?.

Para eso, van a tener que hacer lo siguiente:

  • Detectar la apertura del combo y disparar un ajax para la carga de los valores
  • En el servidor, hacer la llamada al web service correspondiente y cuando vuelve, registrar los valores en memoria, a continuacion… enviar la respuesta ajax (si pierden conectividad, se queda esperando)
  • Cuando reciben la respuesta, tienen que cargar las opciones al ef en cuestion (lo que va a cerrar el ef, asi que ojo con la apertura nueva!)

Saludos

Hola Ricardo…el tema es así como lo entediste vos…
Quisiera pedirte si tenes un ejemplo de la solución que nos brindas o material al que nos podamos referir?

Desde ya muchas gracias!

Hola Fernando,

completar el circuito involucra un poco de hacking de ambos lados, asi que les diria que hagan pruebas con el proyecto toba_referencia, total ahi pueden deshacer los cambios sin problemas.

Por el lado del server:

  • Van a tener que configurar algun metodo para que cuando se abra el combo en cuestion se dispare… eso lo pueden hacer invocando lo siguiente:

 $this->dep('filtro')->columna('id_columna')->get_ef()->set_cuando_cambia_valor($js);

Y del lado del cliente suponiendo que tienen el metodo JS a disparar:


var primer_apertura = true;
 {$this->objeto_js_filtro}.metodo_encuestion = function() {
        var hay_estado = this.ef('idef').tiene_estado();                                                                                                  //Configurando el combo con la opcion usar no seleccion
        if (! hay_estado && primer_apertura) {
               this.controlador().ajax('traeme_opciones', {}, this, this.carga_las_opciones);
               primer_apertura = false;
         }
}

 {$this->objeto_js_filtro}.carga_las_opciones = function(datos) {
          if (datos != '') {
                this.ef('idef').set_opciones_rs(datos['opciones']);
          }
}

A groso modo deberia ser algo asi, no te incluyo el metodo que escucha el ajax en el server xq es trivial mayormente, salvo por el tema del servicio web… pero no varia demasiado de lo que vienen haciendo hoy.

Saludos