ExtJS网格'重置'

时间:2013-01-25 14:22:57

标签: extjs4

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

1 个答案:

答案 0 :(得分:1)

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