【发布时间】:2010-09-02 15:45:04
【问题描述】:
在我的网格中,我想设置 3 个按钮,允许用户选择要查看的列
所以我写了这个函数;它在 chrome 和 safari 上很快,但在 Firefox 上需要很多时间。
问题出在哪里?有没有其他方法可以做到这一点?
function showHideCols(dcols){
thisGrid = Ext.getCmp('myGrid')
thisColModel = thisGrid.getColumnModel()
var hiddenCols = thisColModel.getColumnsBy(function(c){
if(c.hidden==true) return true;
});
var majCols = thisColModel.getColumnsBy(function(c){
if(c.id>17) return true;
});
var editCols = thisColModel.getColumnsBy(function(c){
if(c.id<18) return true;
});
switch(dcols){
case 'maj' :
Ext.each(majCols,function(f){
thisColModel.setHidden(f.id,false)
})
Ext.each(editCols,function(f){
thisColModel.setHidden(f.id,true)
})
break;
case 'edit':
Ext.each(majCols,function(f){
thisColModel.setHidden(f.id,true)
})
Ext.each(editCols,function(f){
thisColModel.setHidden(f.id,false)
})
break;
case 'all' :
Ext.each(hiddenCols,function(f){
thisColModel.setHidden(f.id,false)
})
break;
}
}
我在网格中有 26 个列。 首先我显示从 0 到 17(editCols), 第二从 18 到 26 (majCols) 最后显示全部
【问题讨论】: