Foros del Web » Programando para Internet » Javascript » Frameworks JS »

será que alguién me puede ayudar?... Por fa..

Estas en el tema de será que alguién me puede ayudar?... Por fa.. en el foro de Frameworks JS en Foros del Web. Hola amigos(as), Se que no he tenido la suerte, y quizá la habilidad para hacer las preguntas adecuadas, de convocar su atención y despertar en ...
  #1 (permalink)  
Antiguo 06/04/2015, 09:29
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 2 meses
Puntos: 1
será que alguién me puede ayudar?... Por fa..

Hola amigos(as),

Se que no he tenido la suerte, y quizá la habilidad para hacer las preguntas adecuadas, de convocar su atención y despertar en ustedes el ánimo de responderme, pero como no me queda más que seguir pidiendo ayuda aquí estoy otra vez y sin ánimo de molestarles.

Necesito filtrar items del dataStore para desplegar las coincidencias en un grid, mis condiciones de filtro las obtengo al seleccionar un nodo de treepanel usando las siguientes variables:

Código:
var a = record.parentNode.raw.name;
y

Código:
var b = record.raw.name;
Hasta ahora he probado infinidad de ejemplos que he encontrado en la red, pero no consigo que nada me funciones... Por ejemplo esto:

Código:
var store = Ext.data.StoreManager.lookup('PersonStore');
var peoplefilter = new Ext.util.Filter({
     property: 'lastname',
     value: 'son',
     anyMatch: true,
     caseSensitive: false,
     root: 'data'
 });
 store.filter(peoplefilter);
Que adaptado a mi aplicación dejo como:

Código:
var store_sebas = Ext.data.StoreManager.lookup('MigrIntStore');
var peoplefilter = new Ext.util.Filter({
     property: 'DivPola',
     value: 'División Administrativa Mayor-BO',
     anyMatch: true,
     caseSensitive: false,
     root: 'data'
 });
 store_sebas.filter(peoplefilter);
 console.log(store_sebas);
Y en la consola me entrega:

Código:
constructor {initialConfig: Object, property: "DivPola", value: "División Administrativa Mayor-BO", anyMatch: true, caseSensitive: false…}anyMatch: truecaseSensitive: falsefilter: function (item) {arguments: nullcaller: nulllength: 1name: ""prototype: Object__proto__: function Empty() {}<function scope>filterFn: function (item) {initialConfig: Objectproperty: "DivPola"root: "data"value: "División Administrativa Mayor-BO"__proto__: Ext.util.Filter#constructor
El ejemplo que sigo, propone usar una función para trabajar con filtros más complejos:

Código:
var store = Ext.data.StoreManager.lookup('PersonStore');
var peoplefilter = new Ext.util.Filter({
    filterFn: function(item) {
        return item.data.lastname.substr(0, 2)=='Mc' ? true : false
    }
});
Pero en dónde debería llamar esta función?... al menos si me ayudan con esto podría seguir buscando la manera para continuar...

Igual dejo el código en dónde llamo y lleno el gridPanel:

Código:
var MyTree_01 = Ext.create('Ext.tree.Panel', {
				title:"Mi Treepanel",
				itemId: 'My_TreePanel_01',
				region: 'center',
				width: '40%',
				height: 200,
				store: store,
				style: 'margin: 2px',
				border:3,

			                        listeners:{ //Listeners para cada nodo del treePanel



			                                    select:function(t,record)
			                                    {

			                                    	 a = record.parentNode.raw.name; // capturo el nodo pais
			                                    	 b = record.raw.name; // capturo el nodo para DivPolAdministrativa

			                                       		console.log(store_Tabs);
														console.log(' "a" vale  :', a);
														console.log('y "b" vale :', b);


			                                        if (a != " "){ // Prueba para ver si funciona la captura de pais

					                                    console.log('La variable "a" almacena  : ', a); // Funciona bien
					                                    console.log('La variable "b" almacena  : ', b); // Funciona bien	

													//*****************************************************
													    function renderTopic(value, p, record) {
													        return Ext.String.format(
													            '<a href="http://sencha.com/forum/showthread.php?t={2}" target="_blank">{0}</a>', // esto lo cambiaré después
													           // console.log(value),
													            value,
													            record.data.Etiqueta,
													            record.getId(),
													            record.data.Pais
													        );
													    }


													    var grid = Ext.create('Ext.grid.Panel', {
													    	itemIndex: 'MyGridPanel',
													        width: '100%',
													        xtype:'grid',
													        region:'center',
													        height: 200,
													        store: store_Sebas,
													        loadMask: true,

													        selModel: {
													            pruneRemoved: false
													        },
													        multiSelect: true,
													        viewConfig: {
													            trackOver: false,
													            emptyText: '<h1 style="margin:20px">No matching results</h1>'
													        },

													        // grid columns
													        columns:[{
													            xtype: 'rownumberer',
													            width: 50,
													            sortable: false
													       },


													       {
													            text: "Archivos",
													            dataIndex: 'Etiqueta',
													            flex: 1,
 													            renderer: renderTopic, // función que me permite asignar un link para descarga del(los) archivo(s)
													            sortable: true
													        },{
													            text: "DivPola",
													            dataIndex: 'DivPola',
													            flex: 1,
 													            sortable: true

}													        ],
													        	
													    });
							                                             		} else {

	               				                                             		 MyPanel_01.items.each(function(c){c.close();})
	               				                                             		 console.log('Se seleccionó un pais distinto');
							                                             			
							                                        }  // Termina el IF
							                        							
	               				                                             	MyPanel_01.items.each(function(c){c.close();})

							                                             		MyPanel_01.add(grid);


							                                    } // Termina la función Select del listeners


                                 	}, // Termina el listeners


});

Etiquetas: funcion, grid, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:34.