2011-11-25 58 views
1

复制网格中的行并在开始时插入到同一网格(插入位置0)。extjs4 - 商店中的批量插入导致性能问题

只要命中10行以上,就会导致性能问题。我开始使用

store.suspendEvents(true); foreach(..) { r = ... store.insert(0, r); } store.resumeEvents();

它提高了性能,因为电网不再与在店里行的每个刀片得到刷新。但是由于某些原因,它会在索引存储中的行时引发异常。我认为,因为店面活动暂停,它的状态不佳。

fyi。它在最后再次添加第二行,并在那里抛出异常消息。

任何其他建议如何以任何其他方式处理这种情况是值得欢迎的。

+0

为什么不想将所有数据都放入商店? –

+0

我该怎么做?我必须应用一些逻辑来拾取行..例如,如果我们在网格中有3行,并按下复制,它需要检查某个标志,并基于它,如果发现它真的,复制这些行将它们逐一插入到第0个位置。 – Mutant

回答

0

您应该创建一个商店,然后让网格使用该商店。然后,您可以根据需要管理商店,数据将自动提供给网格。例如:

var the_store = Ext.create('My.store.Foo', { 
    extend: 'Ext.data.Store', 
    fields: ['id','name'], 
    ... 
    proxy: { 
     ... 
    } 
}); 

var the_grid = Ext.create('My.view.Grid', { 
    extend: 'Ext.grid.Panel', 
    ... 
    store: the_store, 
    ... 
});