2015-06-22 132 views
0

我有一個簡單的網格,沒有與任何數據庫表的直接連接。只有幾天山中的人和列中的人(比如31 x 20)。在初始化過程中,我從一些表中讀取數據,計算並將它們寫入這個網格。然後,我必須計算很多指標,通過原始材料,專欄和其中的一部分進行一些計算。只是統計。ExtJS和簡單的網格面板

從網格單元中讀取沒有問題,這非常快。將數據寫入單元格時遇到問題。例如。填寫這個網格的過程如下:

days = Ext.getStore('StoreDays').getRange(); 
employees = Ext.getStore('StoreTeam').getRange(); 
Ext.each(days, function (day) { 
    Ext.each(persons, function (guy) { 
     tmp = day.get('from'); 
     day.set('start_' + persons.data.prs_numer, start); 

     ... and 4 additional SET operations to grid cells 
    }); 
}); 

而且這個程序工作超過3分鐘!!!我不知道爲什麼以及如何編寫好的代碼來正常寫入這些數據。如此善良,並提示我如何! 此外,我無法刷新例如每一個原始的原始設置後,我想要的。 你會如此友善地提醒我嗎?

回答

1

單元更新可能意味着網格需要自行刷新,因此它可以實現31x20x5(31行,20列,每個單元5次)!

相反,這樣做:

store.suspendEvents(); 
// Do your update 
store.resumeEvents(); 
grid.getView().refresh(); 
+0

不,不幸的是它是不是我的問題的解決方案。時間還是一樣。 而且,這個網格是使用celledit插件準備的,以便用戶更正某些單元格。還有一些傾聽'beforedit'和'afxtit'事件的聽衆。我在這個evets中設置了斷點,並且我知道這個事件在程序創建我的兩個循環時沒有使用。 當我使用調試器時,我看到瀏覽器「掛起」這3分鐘。 – Krzys77

+0

然後我建議你發佈一個工作測試用例,否則我不知道你在做什麼。 –

+0

感謝您的信息,我可以發佈它,但這個應用程序是biger系統的一部分,所以它會是沒有環境和數據庫運行的問題。我可以嘗試使用有問題的網格來準備這部分應用程序,並讓它在一些靜態數據上運行。對? – Krzys77