我写了一个函数来使用ExtJS隐藏网格中的空列。但是代码有时会使ie8崩溃,特别是当列数超过20时。所以,我想知道这里有什么问题,我该如何优化呢?
以下是代码:
Ext.define('Ext.ux.CommonGrid', { extend: 'Ext.grid.Panel',
columnLines: true,
layout:'fit',
autoScroll:true,
closable:true,
loadMask:true,
dockedItems: [{
xtype: 'toolbar',
dock: 'top',
loadMask:true,
items: [
{
xtype: 'button',
text: 'arrange',
handler:function(b){
var myMask = new Ext.LoadMask(this.ownerCt.ownerCt.ownerCt,{
msg:"Arranging...",
removeMask:true
});
myMask.show();
var grid = this.ownerCt.ownerCt;
var columns = grid.getView().getHeaderCt().getGridColumns();
var rowsNum = 5;
if (grid.getStore().data.length<rowsNum)
rowsNum = grid.getStore().data.length;
for(var i=0;i<columns.length;i++){
var hide = true;
for(var m=0;m<rowsNum;m++){
if(grid.getStore().getAt(m).data[columns[i].dataIndex]!=null){
hide = false;
break;
}
}
if(hide) columns[i].hide();
}
myMask.hide();
}
}
]
}]
});