PDA

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



mjcee
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 4.2.1.883:

https://fiddle.sencha.com/#fiddle/32r





Ext.Loader.setConfig({enabled: true});
Ext.Loader.setPath('Ext.ux', 'ext/src/ux');
Ext.require([
'Ext.grid.*',
'Ext.data.*',
'Ext.ux.grid.FiltersFeature'
]);


Ext.onReady(function() {


Ext.QuickTips.init();


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
}).show();


grid.reconfigure(store, columns);
});





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

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.

Sabareesh
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 4.2.0.663
but when using 4.2.2 , the filters option itself is not showing when I click the arrow in the header .

mjcee
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.

weige215
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.createFilters();
me.filtersNeedReCreating = false;
}
menu.on({
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.createFilters();
me.filtersNeedReCreating = false;
}
*/
instead of 'me.createFilters();'
it work fine!