关于 extjs4:Extjs Grid 面板 – 使用 hideable=false 隐藏列

Extjs Grid panel - Hide a column with hideable=false

我正在使用 Extjs 4.1 网格面板。

我正在寻找一种从网格中隐藏列的方法。
我可以使用 setHidden 但随后用户可以从列标题的菜单中再次"取消隐藏"该列。
似乎隐藏的属性只是没有削减它......


n


好的。
最终我这样做了:
在网格的"afterrender"事件中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var header = pnl.down("headercontainer");
if(header != null && header["getMenu"] != null)
{
   var menu=header.getMenu();
   menu.on('beforeshow',function(sender,eOpts){

            var menu=sender;
            if(!menu.items.containsKey("columnItem"))
            {
                return;
            }

            var columnsSubMenuItem=menu.items.getByKey("columnItem");
            var columnsCheckboxes=columnsSubMenuItem.menu.items["items"];

            // More code here...
            // See the pseudo code
   });
}

现在我只是遍历列,如果 checkbox.text == column.get_Title()


我在列上使用 setVisible(false | true)。
文档


为每个场景重新配置网格。链接到 api 提示


您可以在 initComponent 方法中配置 columns 属性,并仅将必要的列插入 this.columns 数组