Foro

Carga remota de Store (Sigo el tutorial:¿Qué es un store y cómo funciona?

0
Hola amigos(as),

Les cuento que soy muy nuevo en el uso de ExtJs y he estado trabajando en un pequeño proyecto y en el que algo he avanzado... hasta que me encontré con un problema que me llevó a los cursos y tutoriales de Quizzpot, en particular al de la referencia. Ya conseguí hacerlo funcionar en ExtJs 4.2, pero no he podido cargar el Store de manera remota. Adjunto el js que ya adapte y funciona reproduciendo el tutorial y luego adjunto el que he tratado que me funcione de manera remota... pero no  consigo
cargar los datos.
Agradeceré la ayuda que me puedan dar, porque ya llevo unos cuantos días de buscar, leer, probar y comenzar de nuevo, y me gustaría poder avanzar un poco más en mi tarea. Gracias.

El Tutorial que ya adapté para que funcione en ExtJs 4.2

Ext.ns('com.quizzpot.tutorial');

com.quizzpot.tutorial.Store = {
	
        // aqui los datos que quisiera cargar de manera remota, aquí se hace de manera local
	data: [ //Dummy data for this tutorial

		['Crysfel','Software developer','m',25],
		['Sasha','Figure skater','f',23],
		['Jack','Software Architect','m',35],
		['John','Javascript developer','m',24],
		['Sara','Tester','f',31],
		['Sebas','Research Assistant','m',55]

	],
	
	init: function(){
		//creating a simple store 
		this.store = new Ext.data.SimpleStore({
			fields: [ //defining the fields
				{name:'name',mapping:1}, //mapping the fields
				{name:'occupation',mapping:2}, // with the array
				{name:'gender',mapping:3},// position
				{name:'age',mapping:4}
			],
			id: 0 //the id of each record
		});
		//loading the data from the local array
		this.store.loadData(this.data);
		console.log(this.store );
		
		//listeners for the buttons
		Ext.fly('personBtn').on('click',this.find,this);
		Ext.fly('txt').on('keyup',function(event,cmd){
			if(event.getKey() === event.ENTER){ //when press ENTER
				this.find(); // perform the search
			}
		},this);
		Ext.fly('ascBtn').on('click',this.orderAsc,this);
		Ext.fly('descBtn').on('click',this.orderDesc,this);
		Ext.fly('older2030Btn').on('click',this.query,this);
		Ext.fly('older30Btn').on('click',this.filter,this);
		Ext.fly('countBtn').on('click',this.count,this);
		
	},
	
	orderAsc: function(){
		this.store.sort('name','ASC'); // sort the store ASC
		this.store.each(function(record){
			this.log(record.get('name')); //print each name
		},this);
		this.log('_____________ kk ____________________');
	}
       
        // Resto de funciones
} 
Aquí viene uno de tantos inteneto que he realizado... y que no funcionan

Ext.ns('piaalc');

    Ext.define('MigrInterna', {
        extend: 'Ext.data.Model',
			fields: [ //defining the fields
				{name:'name',mapping:1}, //mapping the fields
				{name:'ocupation',mapping:2}, // with the array
				{name:'gender',mapping:3},// position
				{name:'age',mapping:4}
			],
    
});

	


	var store = Ext.create('Ext.data.Store', {
			storeId: 'MigrIntStore',
		        model: 'MigrInterna',
		        remoteGroup: true,
		        buffered: true,
		        leadingBufferZone: 300,
		        pageSize: 100,

				proxy: {
		            type: 'ajax',
		            url: 'SeleccionDeArchivos.php',
		            reader: {
		            	type: 'json',
		                root: 'MigrInt'
		            }

		        },
		});

 		console.log(store );  // en la salida puedo ver que no ha cargado nada!!
              


		

	Ext.onReady(function(){
																
		//listeners for the buttons
		Ext.fly('personBtn').on('click',this.find,this);
		Ext.fly('txt').on('keyup',function(event,cmd){
			if(event.getKey() === event.ENTER){ //when press ENTER
				this.find(); // perform the search
			}
		},this);
		Ext.fly('ascBtn').on('click',this.orderAsc,this);
		Ext.fly('descBtn').on('click',this.orderDesc,this);
		Ext.fly('older2030Btn').on('click',this.query,this);
		Ext.fly('older30Btn').on('click',this.filter,this);
		Ext.fly('countBtn').on('click',this.count,this);
		
 });

// Por ahora me serviría sólo conseguir la carga del Store y luego testear el funcionamiento de los filtros, que es mi objetivo final

 




0
Te falta en el Modelo el tipo de dato de los campos.
sesebas: Gracias por tu sugerencia, Prichard. Ya resolví la carga del Store, habilité el funcionamiento de filtros y cada registro del grid se carga según corresponde con el agregado de que cada registro se carga con un enlace (href) a un archivo (tabulado) en formato html alojado en el servidor.. Mi empeño ahora está puesto en conseguir la descarga del o los archivos que se seleccionen en el grid por medio de dos botones; uno permitiría desplegar cada archivo en un nuevo tab (si se seleccionó más de un archivo/tabulado, la idea es que se desplieguen uno a continuación del otro en el mismo tab) y el segundo botón permitiría que el usuario descarge directamente, sin previsualizar, el o los archivos seleccionados. Todavía no se cómo hacerlo, pero he estado buscando y en algún momento daré con la forma de hacerlo. 29/05/2015

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.