可能重复:
how to show/ hide column in a grid panelExtJS的显示/隐藏栏动态
在一个Ext JS的网格,我有隐藏的要求/示出基于列的一些COND =真/假。
我可以动态设置列的'hidden'属性吗?
可能重复:
how to show/ hide column in a grid panelExtJS的显示/隐藏栏动态
在一个Ext JS的网格,我有隐藏的要求/示出基于列的一些COND =真/假。
我可以动态设置列的'hidden'属性吗?
可以使用beforerender
事件隐藏的列。在调用渲染函数显示网格之前调用该事件。事件函数采用一个参数,它是网格本身。从这个网格对象中,您可以获取网格的列模型并调用setHidden
方法来隐藏适当的列。从网格对象中,您还可以将商店附加到网格上进行检查。
下面是代码怎么会:
listeners: {
'beforerender' : function(grid) {
store = grid.getStore();
if(your-condition) {
cm = grid.getColumnModel();
cm.setHidden(0,true);
}
}
}
我喜欢你要去的地方,但如果它是一个更圆整的方法就好了:当用户隐藏一个列,捕获事件,在localStorage中存储隐藏某个列的标志。任何网格加载脚本都会根据localStorage内部的内容设置列的可见性。 – IEnumerator 2011-10-19 19:42:42
你可以轻松地扩展上述方法来做到这一点! – 2011-10-19 20:08:04
我最终意识到extjs有一位国家经理。打开它,并砰!我用户可配置的网格。 – IEnumerator 2011-10-20 21:46:17
如果($( '选择 ')是(':隐藏')){} your_code
这不是JQuery。我们正在讨论ExtJs – 2013-04-18 22:48:24
您可以检查并在存储加载隐藏:
store.load({
callback: function(){
// access raw json data and check some columns to hide or not
if(store.getProxy().getReader().rawData.myColumn.hide) {
grid.columns[1].setVisible(false);
}
if(store.getProxy().getReader().rawData.myAnotherColumn.hide) {
grid.columns[4].setVisible(false);
}
}
});
难道这列/网后已经构成?或者您是否知道在创建列定义时是否要显示它? – Jonas 2011-03-21 03:19:32
构建网格后,当商店加载时,商店将包含一个类似于此imho的隐藏/显示标志 – Victor 2011-03-21 04:41:16
:http://stackoverflow.com/questions/6042138/extjs4-what-is-the-equivalent-to-the -grid-columnmodel – 2012-06-06 14:28:25