我有一个非常大的网格,有很多列。当用户点击按钮时,它会调用一个分析整个商店的功能 - 逐个单元格,如果在特定列中没有发现任何更改,则会隐藏它,此外该列保持可见。通常会有相当多的列被隐藏,但正如我所看到的,这个操作 - 隐藏所有这些渲染的列 - 非常重,并且#34;因此我的浏览器可能会发出警报,代码运行太长。 我这样隐藏着:
var cols=grid.headerCt.getGridColumns();
Ext.each(cols, function (item, index, all){
if(condition) item.setVisible(false);
});
我尝试使用Ext.suspendLayouts()
和Ext.resumeLayouts()
,但这会导致错误。即使操作现在运行得更快,而不是列只隐藏列'标题隐藏起来。所以,我需要一个更优化和有效的解决方案。
答案 0 :(得分:3)
suspendLayouts()和后续的resumeLayouts()是其中一种方法。恢复布局后,您只需要调用grid.getView().refresh()
。
另一种选择是调用reconfigure,但这会从列菜单中删除“隐藏”列。