для чекбокса вы определяете handler. В нём можно использовать два параметра
checkbox и checked.
handler: function(checkbox, checked) { ... }
Дальше нужно найти компонент грида извлечь из него стор при помощи getStore() и отфильтровать записи.
Накидал примерчик в Fiddle.
Ext.application({
name : 'Fiddle',
launch : function() {
Ext.create('Ext.container.Container', {
renderTo: Ext.getBody(),
width: 300,
layout: {
type: 'vbox',
align: 'stretch'
},
itemId: 'myContainer',
items: [
{
xtype: 'grid',
itemId: 'myGrid',
flex: 1,
store: Ext.create('Ext.data.Store', {
fields: [
{ name: 'education', type: 'string' }
],
data: [
{ education: 'Высшее' },
{ education: 'Среднее' }
]
}),
//plugins: 'gridfilters',
columns: [
{
header: 'Образование',
dataIndex: 'education',
flex: 1//,
//filter: {
// type: 'list'
//}
}
]
},
{
xtype: 'checkboxgroup',
flex: 1,
fieldLabel: 'Образование',
items: [
{
xtype: 'checkbox',
boxLabel: 'Среднее',
handler: function(checkbox, checked) {
var grid = checkbox.up('#myContainer').down('#myGrid');
var store = grid.getStore();
if (checked) {
store.filterBy(function(record) {
return record.get('education') === checkbox.initialConfig.boxLabel;
});
} else {
store.clearFilter();
}
}
}
]
}
]
});
}
});
Либо используйте плагин gridfilters -
пример.