Foro

this.onMetaChange is undefined

0
Alguien me puede ayudar a resolver este problema: cree un JsonStore aqui va el codigo: facultades : function() { var facultad = Ext.data.JsonStore ({ url:'php/facultad.php', root:'facultades', fields:['id','facultad'] }); return facultad; } despues en un combobox trato de cargar la informacion de la columna facultad algo asi: var facultad = new Ext.form.ComboBox ({ fieldLabel:'Facultad', name:'facultad', forceSelection:true, store: _store.datos.facultades(), displayField:'facultad', triggerAction: 'all', emptyText: '..facultad', width: 160 }) despues de eso la pagina me de este error this.onMetaChange is undefined ademas no me caraga nada, alguien me podria ayudar
0
  var facultad = new Ext.form.ComboBox
        ({
            fieldLabel:'Facultad',
            name:'facultad',
            forceSelection:true,
            
            //store: _store.datos.facultades(), // <-- esto esta mal
            store: this.facultades(), //intenta así
            displayField:'facultad',
            triggerAction: 'all',
            emptyText: '..facultad',
            width: 160           
            
        })
El error que te aparece sucede porque no le estas asignando un store al combo, la solución es asegurarte que si reciba el store adecuado. saludos
0
Lo hize asi porque el formulario y el Json Store estan en ficheros diferentes, te muestro el contenido del fichero dondo se aloja el Json Store:: Ext.ns('_store.datos'); _store.datos = { datos:function() { var datos = Ext.data.JsonStore ({ url:'php/datos.php', root:'datos', fields:[ {name:'nombre'}, {name:'apellidos'}, {name:'sexo'}, {name:'facultad'}, {name:'comedor'} ] }) return datos; }, facultades : function() { var facultad = Ext.data.JsonStore ({ url:'php/facultad.php', root:'facultades', fields:['id','facultad'] }); return facultad; } } El formulario con todos sus componentes se encuentra en un fichero diferente por eso es que en el combobox hago referencia al store de esta manera store: _store.datos.facultades() claro despues de haber incluido ese fichero en el mismo fichero js del formulario....
0
Trata trabajando tu store con el siguiente tipo de configuración.. tal vez eso te ayude
var nombredelStore= new Ext.data.Store({
    reader: new Ext.data.JsonReader({
        fields:[
            {name:'campo1', type: 'string'},
            {name: 'campo2',    type: 'int'}
        ],
        root:'root'
    }),
    proxy: new Ext.data.HttpProxy({
        url: 'tupagina.php?'
    }),
    autoLoad: true
});
espero te sirva. Salu2 Crespo
0
Muchas Gracias elcrerspo con eso reslovi.. saludos
0
me alegra que te haya servido <!-- s:D --><!-- s:D -->

¿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.