如何在extjs中隐藏GridPanel的列



hi我有多列的网格列,我想在更改组合框时用AriaAttributes((隐藏和显示一些列(这段代码可以,只是不适用于隐藏和显示列(我的代码:

@(X.GridPanel()
.View(X.GridView().GetRowClass(x => x.Fn = "MyRowCls"))
.Stateful(true)
.Region(Region.Center)
.ID("MyGrid")
X.Column().Text("a").DataIndex(Model, m => m.a),
X.Column().Text("b").DataIndex(Model, m => m.b).AriaAttributes(myAttr),//show and hide this column
X.Column().Text("c").DataIndex(Model, m => m.b),
X.Column().Text("c").DataIndex(Model, m => m.b),
X.Column().Text("c").DataIndex(Model, m => m.b).AriaAttributes(myAttr),//show and hide this column
X.Column().Text("a").DataIndex(Model, m => m.a)
...

jquery代码为:

var grid = Ext.getCmp('MyGrid');
grid.initialConfig.columns.items.forEach(
... /checked AriaAttributes is ok
{
item.Hidden(true); // not work
//item.setVisible(false)  // not work
....  // not work
}
...
}

但不工作

您正试图将setVisible调用为简单对象上的方法,因为initialConfig.columns存储未将转换传递给gridcolumns实例的列的原始配置。

列本身在这里-grid.columns,它需要方法

var grid = Ext.getCmp('MyGrid');
grid.columns.items.forEach(item =>
...
{
item.setVisible(false);
// or you can call hide() method
}
...
});

最新更新