我正在尝试将expandAll()和collapseAll()用于分组网格Ext 4.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
}]
});
先谢谢你的帮助!!
答案 0 :(得分:3)
这适用于我的应用程序...
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();
答案 1 :(得分:3)
在我的情况下,以下代码有效。
view.normalView.features[0].collapseAll();
view.normalView.features[0].expandAll();
p.s:我以前将view.features视为 null
答案 2 :(得分:0)
IE< 9不支持每个
所以修复是:
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);
}
}
}
适用于IE和Chrome。未在FF中测试过。