View Full Version : [FIXED] Grid Filter Problem with 4.2.2

20 Jan 2014, 6:58 PM
I am having a problem with grid filtering. My application dynamically creates an array of columns and then does a grid reconfigure to set the columns in the grid. The following code works correctly with ExtJS


Ext.Loader.setConfig({enabled: true});
Ext.Loader.setPath('Ext.ux', 'ext/src/ux');

Ext.onReady(function() {


var store = Ext.create('Ext.data.Store', {
fields: ['id', 'text'],
data: [
{id: 'small', text: 'small'},
{id: 'medium', text: 'medium'},
{id: 'large', text: 'large'},
{id: 'extra large', text: 'extra large'}

var columns = [{
dataIndex: 'id',
text: 'Id',
filter: true,
width: 100
}, {
dataIndex: 'text',
text: 'Text',
width: 100,
filter: true,

var grid = Ext.create('Ext.grid.Panel', {
store: store,
columns: [{
features: [{
ftype: 'filters',
local: true

var win = Ext.create('Ext.Window', {
height: 200,
width: 375,
layout: 'fit',
items: grid

grid.reconfigure(store, columns);

When I run this with ExtJS, The Filter menu item does not appear when the column header arrow is pressed like it does with ExtJS

Gary Schlosberg
29 Jan 2014, 9:54 AM
Seems like a bug. I'll move the thread to the Bugs forum.

Gary Schlosberg
29 Jan 2014, 9:56 AM
Thanks for the report! I have opened a bug in our bug tracker.

20 May 2014, 12:37 AM
Is this Bug fixed or still open ?

I am facing the same issue , filters for dynamic columns is working fine with Extjs version
but when using 4.2.2 , the filters option itself is not showing when I click the arrow in the header .

20 May 2014, 4:25 AM
I don't know if this is still a problem. I changed my program so I did not have to do a reconfigure and it worked correctly.

Gary Schlosberg
21 May 2014, 2:08 PM
This bug starts in 4.2.2 and is still unresolved at this time.

13 Sep 2014, 2:14 AM
you open FiltersFeature.js, and find the function 'onMenuCreate', such as:
onMenuCreate: function(headerCt, menu) { var me = this;

// If the menu is ever destroyed, the filters need recreating because
// the filters' menu structures will be destroyed.
if (me.filtersNeedReCreating) {
me.filtersNeedReCreating = false;
beforeshow: me.onMenuBeforeShow,
destroy: me.onMenuDestroy,
scope: me

use alert function, find 'me.filtersNeedReCreating' that the value is undefined!
ok!change the function, like this:
if (me.filtersNeedReCreating) {
me.filtersNeedReCreating = false;
instead of 'me.createFilters();'
it work fine!