Combos Dependientes en Extjs 4
Hola tengo problemas con unos combos dependientes pues la primera vez me trae los Municipios cuando he seleccionado un Departamento, pero al momento de pasar al Combo de Municipios se borra y no muestra nada,
el archivo de PHP me esta trayendo bien el JSON, pero no se donde tenga el error, aca les dejo el còdigo por si alguien me puede ayudar, gracias.
El Store
var store_mpios = Ext.create('Ext.data.Store', {
autoLoad: true,
pruneModifiedRecords: true,
autoSync: true,
//remoteFilter: true,
//remoteSort: true,
storeId: 'storempios',
model: modelo_mpios,
//pageSize: 10,
proxy: {
type: 'ajax',
url: 'mpios.php',
reader: {
type: 'json',
idProperty: 'id_mpio',
root: 'data',
fields: ['id_mpio','nombre_mpio'],
useSimpleAccessors: true
}
},
sorters: {
property: 'nombre_mpio'
}
});
{
xtype: 'panel',
border: 0,
width: 272,
items: [
{
xtype: 'combobox',
id:'combo_depto',
width: 262,
fieldLabel: 'Departamento',
emptyText: 'Seleccione un departamento...',
labelAlign: 'top',
forceSelection:true,
editable:false,
store:store_deptos,
valueField: 'id_depto',
displayField: 'nombre_depto',
pageSize:10,
triggerAction: 'all',
allowBlank:false,
listeners: {
select: function(combo, record, index) {
Ext.getCmp('combo_mpio').clearValue();
Ext.getCmp('combo_mpio').getStore().load({
params:{
d: combo.getValue()
}
});
Ext.getCmp('combo_mpio').enable();
}
}
}
]
},
{
xtype: 'panel',
border: 0,
items: [
{
xtype: 'combobox',
width: 260,
fieldLabel: 'Municipio',
id:'combo_mpio',
labelAlign: 'top',
forceSelection:true,
editable:false,
store:store_mpios,
mode: 'local',
valueField: 'id_mpio',
displayField: 'nombre_mpio',
emptyText: 'Seleccione una ciudad...',
//pageSize:10,
triggerAction: 'all',
disabled: true,
allowBlank:false
}
]
},
Lo que he detallado en este caso es que cuando paso del combo de departamentos al combo de municipios este queda vacio, el JSOn si trae los datos, me toca salir de ese combo de municipios y retornar luego al mismo y ahi si me muestra la lista.
Ya solucione este caso, gracias... Corregi el listeners del combo de departamentos de la siguiente manera:
listeners:{
select: function (combo, record){
simpleCombo.reset();
simpleCombo.store = store_mpios;
store_mpios.load({ params: { d: record[0].get('id_depto') } });
simpleCombo.enable();
}
}
¿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.