PDA

View Full Version : Problem with Simple Store Filter



vizcano
9 Nov 2009, 5:38 AM
Hi, i've got two linked combox which aparently work fine but, every time i filter by '1' y got every record acording to '1' and also the ones which start by '1' as '10', '11'...

This are my stores an my rule to filter.

First combo store and listener


store : new Ext.data.SimpleStore({
fields : ['id','cod','label'],
data : [
[1, 'A' ,'AGRICULTURA, GANADERÍA, SILVICULTURA Y PESCA'],
[2, 'B' ,'INDUSTRIAS EXTRACTIVAS'],
[3, 'C','INDUSTRIA MANUFACTURERA'],
[4, 'D','SUMINISTROS ENERGÍA'],
[5, 'E','SUMINISTRO DE AGUA, ACTIVIDADES DE SANEAMIENTO, GESTIÓN DE RESIDUOS Y DESCONTAMINACIÓN'],
[6, 'F','CONSTRUCCIÓN'],
[7, 'G','COMERCIO AL POR MAYOR Y AL POR MENOR'],
[8, 'H','TRANSPORTE Y ALMACENAMIENTO'],
[9, 'I','HOSTELERÍA'],
[10, 'J', 'INFORMACIÓN Y COMUNICACIONES'],
[11, 'K','ACTIVIDADES FINANCIERAS Y DE SEGUROS'],
[12, 'L','ACTIVIDADES INMOBILIARIAS'],
[13, 'M','ACTIVIDADES PROFESIONALES, CIENTÍFICAS Y TÉCNICAS'],
[14, 'N','ACTIVIDADES ADMINISTRATIVAS Y SERVICIOS AUXILIARES'],
[15, 'O','ADMINISTRACIÓN PÚBLICA Y DEFENSA'],
[16, 'P','EDUCACIÓN'],
[17, 'Q','ACTIVIDADES SANITARIAS Y DE SERVICIOS SOCIALES'],
[18, 'R','ACTIVIDADES ARTÍSTICAS, RECREATIVAS Y DE ENTRETENIMIENTO'],
[19, 'S','OTROS SERVICIOS']
}),
listeners: {
'select': function(p_field, p_record, p_index) {
var value = p_record.get('id');
var comboActividades = Ext.getCmp(String.format('sujetos_{0}_P3_C1', config.sujeto));
comboActividades.reset();
comboActividades.store.filter('grupo', value);
}
}


Second combo store (at this combo i've got triggerAction:'all',lastQuery:'',mode:'local')


store : new Ext.data.SimpleStore({
fields : ['id', 'grupo', 'riesgo', 'codigo', 'label'],
data : [
['1',1,'0','A099','Resto actividades agrícolas, ganadería'],
['2',1,'1','0311','Pesca marina'],
['3',2,'0','B099','INDUSTRIAS EXTRACTIVAS'],
['4',3,'0','C099','Resto Industria Manufacturera'],
[...],
['20',10,'0','J099','INFORMACIÓN Y COMUNICACIONES'],
['21',11,'0','K099','Otros'],
['22',11,'1','K098','Casas de cambio, remisores de fondos'],
['23',12,'0','L099','ACTIVIDADES INMOBILIARIAS'],
['24',13,'0','M099','ACTIVIDADES PROFESIONALES, CIENTÍFICAS Y TÉCNICAS'],
['25',14,'0','N099','ACTIVIDADES ADMINISTRATIVAS Y SERVICIOS AUXILIARES'],
['26',15,'0','O099','ADMINISTRACIÓN PÚBLICA Y DEFENSA'],
['27',16,'0','P099','EDUCACIÓN'],
[...]
]
})


Can anyone help me? Thank u so much :)

BitPoet
9 Nov 2009, 7:40 AM
This is the documented behaviour of Ext.data.Store's "filter" method. If you want it to do exact matches, you can to use the filterBy method.


comboActividades.store.filterBy( function(rec) {
return rec.get('grupo') == value;
});