this.onMetaChange is undefined
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
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
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....
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
¿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.