Extjs 如何使用ExpandAll和CollapseAll使用分组功能对网格进行分组

Extjs 如何使用ExpandAll和CollapseAll使用分组功能对网格进行分组,extjs,grid,extjs4,grouping,Extjs,Grid,Extjs4,Grouping,我正在尝试将expandAll()和collapseAll()用于分组网格ext4.1 但在覆盖之后,它不起作用: 未定义获取错误expandAll() Ext.override(Ext.grid.feature.Grouping, { collapseAll: function() { var self = this, view = self.view;

我正在尝试将expandAll()和collapseAll()用于分组网格ext4.1

但在覆盖之后,它不起作用: 未定义获取错误expandAll()

            Ext.override(Ext.grid.feature.Grouping, {
                  collapseAll: function() {
                    var self = this, view = self.view;
                    view.el.query(self.eventSelector).forEach(function (group) {
                      var group_body = Ext.fly(group.nextSibling, '_grouping');
                      self.collapse(group_body);
                    });
                  },

                  expandAll: function() {
                    var self = this, view = self.view;
                    view.el.query(self.eventSelector).forEach(function (group) {
                      var group_body = Ext.fly(group.nextSibling, '_grouping');
                      self.expand(group_body);
                    });
                  }
                });
这是我的视图文件:

 Ext.define('MCT.view.MyGrid',
   {
     extend:'Ext.grid.Panel',
     initComponent:function(){
       var me  = this;
       this.bbar = [{xtype:'button',text:'Expand All', handler:function(){

          me.features[0].expandAll();

          this.callParent(arguments);


        }}];
     },
     features : [{
        ftype : 'grouping',
                    groupHeaderTpl :'.......',
                    startCollapsed : true
       }]

  });

提前感谢您的帮助

这在我的应用程序中适用于我

    xtype: 'tool',                   
    type: 'collapse-top',
    hidden: true,
    handler: function (event, target, owner, tool) {
        var agPanel = owner.up(), //getting thePanel
            view = agPanel.view,  
            gFeature = view.features[0]; //I júst have one feautre... so [0] works

        gFeature.collapseAll();
    }
在我的例子中,我已经将“折叠顶部”工具放置到触发组的工具栏中。 有趣的是,只有从面板中获取视图,并从视图中获取分组功能,它才有效

我认为在你的情况下,当你这样做的时候,它应该会起作用

var view = me.view;
view.features[0].expandAll();    

这在我的应用程序中适用于我

    xtype: 'tool',                   
    type: 'collapse-top',
    hidden: true,
    handler: function (event, target, owner, tool) {
        var agPanel = owner.up(), //getting thePanel
            view = agPanel.view,  
            gFeature = view.features[0]; //I júst have one feautre... so [0] works

        gFeature.collapseAll();
    }
在我的例子中,我已经将“折叠顶部”工具放置到触发组的工具栏中。 有趣的是,只有从面板中获取视图,并从视图中获取分组功能,它才有效

我认为在你的情况下,当你这样做的时候,它应该会起作用

var view = me.view;
view.features[0].expandAll();    

IE<9不支持forEach

以下是链接:

因此,解决办法是:

  if ( !Array.prototype.forEach ) {
    Array.prototype.forEach = function(fn, scope) {
     for(var i = 0, len = this.length; i < len; ++i) {
         fn.call(scope, this[i], i, this);
     }
   }
 }
if(!Array.prototype.forEach){
Array.prototype.forEach=函数(fn,范围){
对于(变量i=0,len=this.length;i

它将适用于IE和Chrome。未在FF中测试

IE<9不支持forEach

以下是链接:

因此,解决办法是:

  if ( !Array.prototype.forEach ) {
    Array.prototype.forEach = function(fn, scope) {
     for(var i = 0, len = this.length; i < len; ++i) {
         fn.call(scope, this[i], i, this);
     }
   }
 }
if(!Array.prototype.forEach){
Array.prototype.forEach=函数(fn,范围){
对于(变量i=0,len=this.length;i

它将适用于IE和Chrome。未在FF中测试

在我的例子中,以下代码有效

view.normalView.features[0].collapseAll();
view.normalView.features[0].expandAll();

p、 s:我过去常常将view.features设置为
null
在我的情况下,下面的代码工作正常

view.normalView.features[0].collapseAll();
view.normalView.features[0].expandAll();

p、 s:我以前经常将view.features设置为
null

谢谢您的回复。。。它适用于铬。但是在IE中,它抛出了一个错误:对象不支持属性或方法'forEach',这里是IE的修复程序<9在脚本文件中添加这个:if(!Array.prototype.forEach){Array.prototype.forEach=function(fn,scope){for(var i=0,len=this.length;iExt.Array。每个
你可以简单地使用
Ext.Array。每个
在我的例子中,我使用extjs4.2.5,第一个解决方案对我不起作用,但这非常好。谢谢。根据文档,还有。。。现在,如果他们有一个可以在标题中插入的切换按钮就好了。在我的例子中,我使用ExtJS 4.2.5,第一个解决方案对我不起作用,但它非常好用。谢谢。根据文档,还有。。。现在,如果他们有一个切换按钮,可以注入标题。