【发布时间】:2013-10-09 22:48:26
【问题描述】:
我有一个包含超过 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
【问题讨论】:
标签: javascript extjs grid updates multiple-records