PDA

View Full Version : HELP: Combobox filtered in EditorGridPanel



mhmorales
11 Feb 2010, 6:52 PM
I have this code



Ext.namespace('Dispositivos');

Dispositivos.marcasDispositivosRecord = Ext.data.Record.create([
{name: 'idMarcaDispositivo', type: 'int'},
'descripcion'
]);

Dispositivos.modelosDispositivosRecord = Ext.data.Record.create([
{name: 'idModeloDispositivo', type: 'int'},
{name: 'idMarcaDispositivo', type: 'int'},
'descripcion',
'tipoDispositivo'
]);

Dispositivos.marcasDispositivosReader = new Ext.data.JsonReader({
root: 'data',
totalProperty: 'totalCount',
id: 'idMarcaDispositivo'
}, Dispositivos.marcasDispositivosRecord);

Dispositivos.modelosDispositivosReader = new Ext.data.JsonReader({
root: 'data',
totalProperty: 'totalCount',
id: 'idModeloDispositivo'
}, Dispositivos.modelosDispositivosRecord);


Dispositivos.marcasDispositivosStore = new Ext.data.Store({
reader: Dispositivos.marcasDispositivosReader,
proxy: new Ext.data.HttpProxy({url:'crm/index/modelstore'}),
baseParams: { model: 'marcasDispositivos' }
});

Dispositivos.modelosDispositivosStore = new Ext.data.Store({
reader: Dispositivos.modelosDispositivosReader,
proxy: new Ext.data.HttpProxy({url:'crm/index/modelstore'}),
baseParams: { model: 'modelosDispositivos' }
});

Dispositivos.marcasDispositivosCombo = new Ext.form.ComboBox({
typeAhead: true,
lazyRender: true,
autoLoad: false,
triggerAction: 'all',
store: Dispositivos.marcasDispositivosStore,
displayField: 'descripcion',
valueField: 'idMarcaDispositivo',
hiddenName: 'idMarcaDispositivo'
});

Dispositivos.modelosDispositivosCombo = new Ext.form.ComboBox({
typeAhead: true,
lazyRender: true,
autoLoad: true,
triggerAction: 'all',
store: Dispositivos.modelosDispositivosStore,
displayField: 'descripcion',
valueField: 'idModeloDispositivo',
hiddenName: 'idModeloDispositivo',
listeners: {
beforequery: function(queryEvent) {
//I want filter store, but the first time execute this funtion before load store.
queryEvent.combo.getStore().filter('idMarcaDispositivo', queryEvent.combo.gridEditor.record.get('idMarcaDispositivo'));
},
blur: function(combo) {
combo.getStore().clearFilter();
}
}
});
Dispositivos.modelosDispositivosCombo.getStore().load();

Dispositivos.clientesDispositivosRedesColModel = new Ext.grid.ColumnModel([
{
header: 'Marca',
dataIndex: 'idMarcaDispositivo',
sortable: true,
editor: Dispositivos.marcasDispositivosCombo,
renderer: Ext.util.Format.comboRenderer(Dispositivos.marcasDispositivosCombo)
}, {
header: 'Modelo',
dataIndex: 'idModeloDispositivo',
sortable: true,
editor: Dispositivos.modelosDispositivosCombo,
renderer: Ext.util.Format.comboRenderer(Dispositivos.modelosDispositivosCombo)
}, {
header: 'Numero de serie',
dataIndex: 'numeroSerie',
width: 85,
sortable: true,
editor: new Ext.form.TextField({
//allowBlank: false
})
}, {
header: 'Usuario',
dataIndex: 'usuario',
width: 85,
sortable: true,
editor: new Ext.form.TextField({
//allowBlank: false
})
}, {
header: 'Clave',
dataIndex: 'clave',
width: 85,
sortable: true,
editor: new Ext.form.TextField({
//allowBlank: false
})
}, {
header: 'Estado',
dataIndex: 'codEstadoDispositivoUlt',
width: 85,
sortable: true,
editor: Dispositivos.estadosDispositivosCombo,
renderer: Ext.util.Format.comboRenderer(Dispositivos.estadosDispositivosCombo)
}, {
header: 'Comentario',
dataIndex: 'comentario',
sortable: true,
editor: new Ext.form.TextField({
//allowBlank: false
})
}
]);

Dispositivos.clientesDispositivosRedesEditorGrid = new Ext.grid.EditorGridPanel({

border: false,
loadMask: true,
colModel: Dispositivos.clientesDispositivosRedesColModel,
store: Dispositivos.clientesDispositivosRedesStore,
disabled: true,

iconCls: 'network_device_icon',
title: 'Dispositivos de redes',

clicksToEdit: 2,

selModel: new Ext.grid.RowSelectionModel({
singleSelect: true
}),

viewConfig: {
forceFit: true
},

bbar: new Ext.PagingToolbar({
pageSize: 25,
store: Dispositivos.clientesDispositivosRedesStore,
displayInfo: true,
displayMsg: 'Mostrando registros {0} - {1} of {2}',
emptyMsg: "No hay registros"
}),

tbar: [
{
scope: this,
text: 'Nuevo dispositivo de red',
handler: Dispositivos.nuevoClienteDispositivoRedAccion,
iconCls: 'network_device_add_icon'
},
{
scope: this,
text: 'Eliminar dispositivo de red',
handler: Dispositivos.eliminarClienteDispositivoRedAccion,
iconCls: 'network_device_delete_icon'
},
],

listeners: {
afterEdit: Dispositivos.grabarClienteDispositivoRedAccion
}
});



Can someone tell me the solution?


Sorry, my english isn't good.


Cheers!