-
27 Nov 2012 9:56 AM #1
Answered: Hiding of all hideable columns not allowed?
Answered: Hiding of all hideable columns not allowed?
I noticed that a user cannot hide all columns in a gridpanel. It seems that the grid must at least display one column. I can imagine this is a nice feature, but it doesn't work quite as I expected when dealing with both hideable and non-hideable columns. It seems that the rule is that at least one hideable column is required to display, even if there is a non-hideable column in the grid.
It doesn't make sense to me to not allow hiding of all hideable columns when at least one non-hideable column is displayed. Is this behaviour configurable?
I created a demo based on the Stateful Array Grid Example showing the problem:
http://jsfiddle.net/p9zqK/
-
Best Answer Posted by Bert RegelinkA simple hack is to allow all columns to be hidden unconditionally (in my application I don't bother about checking whether hideable columns exist, because I know they do...)
Code:Ext.override(Ext.grid.header.Container, { updateMenuDisabledState: function() { var me = this, result = me.getLeafMenuItems(), total = result.checkedCount, items = result.items, len = items.length, i = 0, rootItem = me.getMenu().child('#columnItem'); //if (total <= 1) if (total <= 0) /* Allow all columns to be hidden unconditionally */ { me.disableMenuItems(rootItem, Ext.ComponentQuery.query('[checked=true]', items)[0]); } else { for (; i < len; ++i) { me.setMenuItemState(total, rootItem, items[i]); } } } });
-
27 Nov 2012 1:25 PM #2
Fixed
Fixed
A simple hack is to allow all columns to be hidden unconditionally (in my application I don't bother about checking whether hideable columns exist, because I know they do...)
Code:Ext.override(Ext.grid.header.Container, { updateMenuDisabledState: function() { var me = this, result = me.getLeafMenuItems(), total = result.checkedCount, items = result.items, len = items.length, i = 0, rootItem = me.getMenu().child('#columnItem'); //if (total <= 1) if (total <= 0) /* Allow all columns to be hidden unconditionally */ { me.disableMenuItems(rootItem, Ext.ComponentQuery.query('[checked=true]', items)[0]); } else { for (; i < len; ++i) { me.setMenuItemState(total, rootItem, items[i]); } } } });
-
27 Nov 2012 1:58 PM #3Sencha - Ext JS Dev Team
- Join Date
- Mar 2007
- Location
- Notts/Redwood City
- Posts
- 30,458
- Vote Rating
- 20
- Answers
- 9
This is fixed in 4.2
Possibly the fix was in 4.1.3, but it definitely works with latest code.Search the forum: http://www.google.com/coop/cse?cx=01...%3Az7of1ufqccu
Read the docs too: http://extjs.com/deploy/dev/docs/
Scope: http://extjs.com/forum/showthread.ph...642#post257642


Reply With Quote