Extjs4 ExtJS网格&x27;重置';

Extjs4 ExtJS网格&x27;重置';,extjs4,Extjs4,我使用的是ExtJS4,使用的是MVC方法。我创建了一个简单的网格视图类,并在控制器中向该视图添加了componentquery类型“ref”。在初始网格视图中,我将几个列设置为隐藏,一些默认设置为可见。使用这些设置的栅格渲染效果良好 然后我有一个按钮,当单击该按钮并基于其他一些条件时,将使一些最初隐藏的网格列可见。这同样有效 但我需要的是一种稍后将网格“重置”到其初始视图的方法(与初始视图一样,隐藏/可见正确的列) 我尝试了以下各种排列,但没有效果: var theGrid = this.ge

我使用的是ExtJS4,使用的是MVC方法。我创建了一个简单的网格视图类,并在控制器中向该视图添加了componentquery类型“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();
    

您只需要在视图类上创建一个函数来封装该功能