請幫忙!我正在使用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!有什麼辦法可以讓這些不可隱藏的列不會出現在「列」複選框列表中?我希望用戶只能看到她可以隱藏在列表中的列 –