我在 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();