Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/10/2015, 23:27
sesebas
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 3 meses
Puntos: 1
Filtro remoto en exjs 4

Hola amigos,

Estoy en medio de una pequeña aplicación y necesito ver la manera de ejecutar la carga de un store filtrando los datos desde el servidor. Ahora consigo filtralos, pero lo hago una vez que el Store se ha cargado con todo el contenido devuelto. Ojalá me puedan ayudar porque lo que he buscado y experimentado no me ha funcionado.

Gracias.

Esta es la parte de código en que quisiera optimizar
Código Javascript:
Ver original
  1. //Aquí comienzo el listener: Al seleccionar un item de un treePanel que tiene países y subnodos
  2.                     select:function(t,record){
  3.  
  4.                    var a = record.parentNode.raw.name; // capturo el nodo pais
  5.                var b = record.raw.name; // capturo el nodo para DivPolAdministrativa
  6.  
  7.         var store = Ext.create('Ext.data.JsonStore', {
  8.             model: 'MyGrid',
  9.                proxy: {
  10.                             type: 'ajax',
  11.                             url: 'SeleccionDeArchivos_Json.php',
  12.                             reader: {
  13.                                 type: 'json',
  14.                                 root: 'MigrInt'
  15.                             },
  16.  
  17.                         },
  18.  
  19.                 remoteFilter: true, // esta línea la agregué en mi intento de ahora
  20.             autoLoad: true,
  21.         });
  22.          
  23.                // Todo el Store.On('load'... funciona bien, pero como digo filtra lo que ya
  24.                // se ha cargado en el Store
  25.  
  26.         store.on('load',function(){
  27.             store.filterBy(function(record,id){
  28.             return record.get('Pais')== a && record.get('DivPola') == b;
  29.             });
  30.  
  31.         });
  32.  
  33. //Lo que viene no me ha servido... El Store carga todo el contenido devuelto por el //Servidor
  34.  
  35. //MiFiltro();
  36. //*************************
  37. function MiFiltro(){
  38.                              
  39.                               console.log(a,b);
  40.                               //Pais es un campo en el Store... igual necesito la combinación
  41.                               //de Pais y Divpola que es otro campo en el Store ('Necesito'
  42.                               // me devuelve... Nada!
  43.                               Necesito=Ext.getCmp(‘Pais’).getValue();
  44.                               store.remoteFilter=false;
  45.                               store.clearFilter();
  46.                               store.remoteFilter=true;
  47.                               store.filter('Pais', Necesito);
  48.                                
  49.             };
  50.  
  51. //*************************