2011-07-26 54 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/