Extjs 如何使用ExpandAll和CollapseAll使用分组功能对网格进行分组
我正在尝试将expandAll()和collapseAll()用于分组网格ext4.1 但在覆盖之后,它不起作用: 未定义获取错误expandAll()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;
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,第一个解决方案对我不起作用,但它非常好用。谢谢。根据文档,还有。。。现在,如果他们有一个切换按钮,可以注入标题。