2011-04-13 37 views
1

我有一個ExtJS編輯器網格,裏面有一些列。我想修改記錄中的數據並自動將數據保存到數據庫。但是我完成編輯當前行的所有單元格後,只需要保存數據。我曾經使用過這個事件,但是在一個單元格發生變化之後它立即開啓了這個事件。 在完成修改所有單元格之前,如何讓該事件不會觸發?或者你能否建議採取另一種方式來做到這一點,而不是使用「事後」事件? 非常感謝。在編輯ExtJS網格中的整行後觸發「未處理」?

回答

0

我覺得你的情況下,有一個按鈕,你點擊保存網格會更容易。您可以通過調用grid.store.getModifiedRecords()來訪問所有修改的記錄,並將其發送到您的後端服務,並執行批量更新,而不是一次更新單個行。

0

這是我的問題:你是否編輯了一行中的所有單元格?更好的解決方案是使用「保存」按鈕將更新的數據發送回服務器並將其保存到數據庫中。現在

,如果你堅持要在一行中的所有單元格將被修改,你可以做到以下幾點:

afteredit事件處理程序:

  1. 獲取正在編輯的記錄(你可以得到它通過event.record
  2. 檢查是否在記錄中修改了所有字段。這可以通過檢查公共財產modified來完成。
  3. 如果所有字段都被修改,則繼續將更新的記錄發送到服務器以保存到數據庫中。
0

你可以使用上的選擇模型rowdeselect事件(假設你使用Ext.grid.RowSelectionModel。裏面的事件處理程序可以檢查該記錄是否已被修改,並做出相應的反應。

var grid = // your grid 
grid.getSelectionModel().on("rowdeselect", function(selModel, rowIndex, record) { 
    if (record.dirty) { 
     // record has been modified 
    } 
}); 
相關問題