我在使用ExtJS 4并使用MVC方法。我已经创建了一个简单的网格视图类,并在我的控制器中为该视图添加了一个组件查询类型“ref”。在初始网格视图本身中,我设置了几个要隐藏的列,一些列默认可见。使用这些设置渲染网格的工作正常。
然后我有一个按钮,当点击并基于其他一些条件时,会使一些最初隐藏的网格列可见。这也有效。
但我需要的是稍后将网格'重置'到其初始视图的方式(正确的列隐藏/可见,就像它们最初一样)。
我尝试了以下各种排列,但没有效果:
var theGrid = this.getTheGrid();
theGrid.reconfigure(store, theGrid.initialConfig.columns);
theGrid.getView().refresh();
我想我可以循环遍历每一列并重置其“隐藏”状态,但会认为有一种方法可以“重置”回到类中设置的内容吗?建议?
解决方案更新
欣赏tuespetre的指针。对于将来寻找具体细节的人来说,这里需要的是(至少对我的实施而言):
在视图中,将列defs移动到变量
在视图中,类中的列ref变为:
columns: myColumns,
在视图中,在类中创建了以下函数:
resetGrid: function(){
this.reconfigure(null, myColumns);
},
在控制器内:
var theGrid = this.getTheGrid();
theGrid.resetGrid();
答案 0 :(得分:1)
您只需要在视图类上创建一个函数来封装该功能。