Threaded View
-
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]); } } } });


Reply With Quote