2011-11-25 81 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, 
    ... 
});