Nir*_*lum 5 javascript grid extjs extjs4.1
请帮忙!我正在使用ExtJs 4.1网格面板.
我正在寻找一种在渲染后更改网格enableColumnHide属性的方法.我在几个屏幕中重复使用相同的网格,只需稍作修改,主要是隐藏一些列.
在其中一个屏幕中,我只留下了不应该隐藏的列,因此我想完全从列标题菜单中删除该选项,但是当我到达其他屏幕时恢复它.
有任何想法吗?
似乎没有明显的方法可以做到这一点,但我发现了一个 hack -每次更改该值时都会更改并销毁标题菜单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;
}
}
});
Run Code Online (Sandbox Code Playgroud)
也可以通过在列上使用 hideable 来实现:
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;
});
}
});
Run Code Online (Sandbox Code Playgroud)
工作示例enableColumnHide: http: //jsfiddle.net/M3Aqq/5/
工作示例hideable: http: //jsfiddle.net/M3Aqq/9/