我有一个包含超过 1000 行(用户)和一个检查列的网格,用于将每个用户链接到另一个特定实例(例如一组用户)。我已经实现了一个“全选”按钮,它执行以下操作:
var items = view.store.data.items;
var dataIndex = 'dataIndexOfCheckColumn';
var check = true;
//view.store.suspendEvents();
for (var i = 0; i < items.length; i++)
{
var record = view.store.getAt(i),
record.set(dataIndex, check);
this.fireEvent('checkchange', this, i, check, record);
}
//view.store.resumeEvents();
这种方法的问题在于,每组记录都会触发一些事件(验证、取消连接等),并且对于 1000 条记录来说太多了。Chrome 几乎在一秒钟内完成了这项工作,但 IE (9,10) 在“...”-> 几乎 2 分钟内是一个痛苦。
还有另一种方法可以做到这一点吗?我正在考虑暂停商店中的事件,然后恢复它们并与网格同步商店,但我没有在文档中找到如何实现这样的事情。
我正在使用 ExtJs 版本 4.0.1