Reputation: 13509
I can't seem to get the FiltersFeature to work in my extJS project. Visually the filter appears when i click on the header. But as soon as I type into the text field in the drop down, the data is not dynamically filtered. I feel like there is some event listener missing in my setup.
Here is my setup :
My imports :
Ext.require([
'Ext.data.*',
'Ext.grid.*',
'Ext.tree.*',
'Ext.ux.grid.FiltersFeature',
'Ext.toolbar.Paging'
]);
Creating my custom Grid (called PackageGrid) and creating the tableStore :
var pacakgeGrid = Ext.create('js.dmwf.PackageGrid',{
title: 'Packages',
height: 280,
width: '100%'
});
// create the data store
var tablestore = new Ext.data.SimpleStore({
fields: [
{name: 'id', type: 'int'},
{name: 'name'}
]
});
tablestore.loadData(getSampleData());
pacakgeGrid.bindStore(tablestore, 100);
p.add(pacakgeGrid);
Defining my custom Grid (PackageGrid) with associated columns and filters:
var createHeaders = function () {
var columns = [{
dataIndex: 'id',
text: 'ID'
}, {
dataIndex: 'name',
text: 'Name of Packet'
}];
return columns;
};
var filters = {
ftype: 'filters',
encode: false,
local: true,
filters: [
{
type: 'string',
dataIndex: 'name'
}
]
};
Ext.define('js.dmwf.PackageGrid', {
extend: 'Ext.grid.Panel',
requires: [
'Ext.grid.column.Action'
],
title: 'Array Grid',
xtype: 'array-grid',
collapsible: true,
multiSelect: true,
height: 350,
features: [filters],
viewConfig: {
stripeRows: true,
enableTextSelection: true
},
columns: createHeaders(),
});
Here is a fiddle :
https://fiddle.sencha.com/#fiddle/6bc
Upvotes: 0
Views: 289
Reputation: 3932
Ext.define('js.dmwf.PackageGrid', {
extend: 'Ext.grid.Panel',
requires: [
'Ext.grid.column.Action'
],
title: 'Array Grid',
xtype: 'array-grid',
collapsible: true,
multiSelect: true,
height: 350,
store : tablestore // store config
features: [filters],
viewConfig: {
stripeRows: true,
enableTextSelection: true
},
columns: createHeaders(),
});
Updated fiddle : fiddle
Upvotes: 1