2011-07-26 53 views
0

我在商店裏記錄的對象,因爲我已經下文提到的(結構較爲單一記錄在商店):如何提交修改的記錄或更新存儲中的記錄並將其提交給服務器?

data: Object 
dirty: true 
events: Object 
internalId: "ext-record-14" 
modified: Object 
needsAdd: false 
phantom: false 
store: Object 

現在,我們已經插入,刪除,增加商店的方法來處理在商店級別的記錄但我想更新商店級別的記錄,類似於FormPanel方法的updateRecord。

我想更新髒的所有記錄到服務器。

+0

不是['store.sync'](http://docs.sencha.com/ext-js/4-0/#/api/Ext.data.Store -method-sync),你想要什麼? –

+0

我只想要store.sync,但它不適合我。我遵循的步驟是:1)var records = store.data.items(); 2)通過使用record.set()3)迭代每條記錄並更改它們的列值現在,記錄很髒但是我必須使用一些方法將它們存儲在存儲中然後使用同步方法 –

+0

什麼版本的ExtJS ?數據層在v3和v4之間發生了一些非常大的變化。 – wes

回答

6

Sencha Touch 1.1.1有一個錯誤,可能會導致更新記錄不被保存。我已經通過在記錄手動設置isDirty標誌設置爲true,然後調用store.sync()圍繞這一問題的工作

所以:

var index = store.find('name','Hello World'); 
var record = store.getAt(index); 
record.set('value', 'new value'); 
record.dirty = true; 
store.sync(); 

我使用的offlinestore代理。

另請參見: http://www.sencha.com/forum/showthread.php?153432-1.1.1-broke-store.sync-for-modified-records/