2

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

1 回答 1

1

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

于 2013-01-25T17:41:39.857 回答