请帮忙!我正在使用ExtJs 4.1网格面板。Extjs Grid面板 - 在渲染后更改enableColumnHide属性
我正在寻找一种方法来更改渲染后的网格enableColumnHide属性。 我在少量更改的情况下重复使用了同一个网格,主要隐藏了一些列。
在其中一个屏幕上,我只留下了不应该隐藏的列,因此我想从列标题菜单中完全删除选项,但在到达其他屏幕之一时将其恢复。
任何想法?
请帮忙!我正在使用ExtJs 4.1网格面板。Extjs Grid面板 - 在渲染后更改enableColumnHide属性
我正在寻找一种方法来更改渲染后的网格enableColumnHide属性。 我在少量更改的情况下重复使用了同一个网格,主要隐藏了一些列。
在其中一个屏幕上,我只留下了不应该隐藏的列,因此我想从列标题菜单中完全删除选项,但在到达其他屏幕之一时将其恢复。
任何想法?
似乎没有明显的方法可以做到这一点,但是我发现在每次更改该值时都会发现一个破解enableColumnHide
的headerCt
并破坏标题菜单。示例代码:
var checkbox = new Ext.form.field.Checkbox({
renderTo: 'checkbox',
boxLabel: 'enableColumnHide',
checked: true,
handler: function(sender, checked) {
var h = grid.headerCt;
h.enableColumnHide = checked;
if (h.menu) {
h.menu.destroy();
h.menu = null;
}
}
});
这也是posiible通过使用可隐藏的列:
var checkbox = new Ext.form.field.Checkbox({
renderTo: 'checkbox',
boxLabel: 'enableColumnHide',
checked: true,
handler: function(sender, checked) {
Ext.each(grid.columns, function(c){
c.hideable = checked;
});
}
});
工作样品与enableColumnHide
:http://jsfiddle.net/M3Aqq/5/
工作样品与hideable
:http://jsfiddle.net/M3Aqq/9/
我也有一个之前类似的问题。根据“可隐藏”的菜单上
Extjs Grid panel - Hide a column with hideable=false
基本上我已经注册到网格标题菜单中的“beforeshow”事件和隐藏每个可隐藏列复选框项: 你可以在这里获得我的解决办法在每一列上进行推测。
你可以用“enableColumnHide”一样(只是隐藏“列”子菜单里面只有一个菜单项本身)
有趣......将这工作也列上的可隐藏的财产? – danfromisrael
具有可隐藏性,不需要销毁菜单。我已经更新了我的答案。 – Krzysztof
真是太棒了,10倍Lolo!有什么办法可以让这些不可隐藏的列不会出现在“列”复选框列表中?我希望用户只能看到她可以隐藏在列表中的列 –