PDA

View Full Version : How to retain previous filter on checkbox extjs 4.1



eaglefox12
16 Nov 2012, 7:33 AM
Hey everyone... I am trying to use this checkbox filter... where a user clicks and then shows list of states on a grid that's only cold... when the user unchecks, I want the store to be back on the previous state... I don't want to use the store.clearfilter() because it just clears my previous filter... I want to retain the previous filter (which is triggered from another combox)... Here's my code that i am trying to use.. but it says


TypeError: a.getRoot.call(a, d) is undefined

please help... is there another way to implement this? thanks

items: [{
xtype: 'checkboxfield',
boxLabel: 'Show only Cold State',
scope: this,
handler: function (field, value) {
scope: this,
this.checkValue = field.getValue();
console.log(this.checkValue);
if (this.checkValue == true) {
var tempstore1 = Ext.getCmp('GridArea1').store;
tempstore1.filters.add('CheckBoxFilter', new Ext.util.Filter({
property: 'Cold',
value: 'Yes',
root: 'myTable'
}));
console.log('here');
tempstore1.load();
}
else if (this.checkValue == false) {
this.store.filters.removeAtKey('CheckBoxFilter');
}
},

mitchellsimoens
19 Nov 2012, 9:25 AM
Some code that may help you:


clearFilter: function() {
var store = this.store,
filter = this.activeFilter,
filters = store.filters,
remaining;

if (filter) {
if (filters.getCount() > 1) {
// More than 1 existing filter
filters.remove(filter);
remaining = filters.getRange();
}
store.clearFilter(true);
if (remaining) {
store.filter(remaining);
}
}
return !!filter;
},