我想将已在表单的某些字段中编辑过的设置同步到服务器。
Firebug显示:没有,点击按钮没有连接。
JavaScript控制台显示:NO ERROR。
我有什么:
onButtonClick: function(button, e, eOpts) {
Ext.getStore("optionsStore").getAt(0).setDirty();
Ext.getStore("optionsStore").commitChanges();
Ext.getStore("optionsStore").sync();
}
我用来加载:
onJsonstoreLoad: function(store, records, successful, eOpts) {
Ext.getCmp("optionsForm").getForm().loadRecord(store.getAt(0));
}
我的商店是由建筑师建造的:
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
autoLoad: true,
model: 'optionsModel',
storeId: 'optionsStore',
proxy: {
type: 'ajax',
api: 'read: \'http://localhost:52699/api/AdminPanel?do=select\',\r\ncreate: \'http://localhost:52699/api/AdminPanel?do=insert\',\r\nupdate: \'http://localhost:52699/api/AdminPanel?do=update\',\r\ndestroy: \'http://localhost:52699/api/AdminPanel?do=delete\'',
url: 'allSettings.json',
reader: {
type: 'json',
root: 'globalSettings'
},
writer: {
type: 'json',
allowSingle: false,
encode: true,
root: 'globalSettings'
}
},
listeners: {
load: {
fn: me.onJsonstoreLoad,
scope: me
}
}
}, cfg)]);
},
答案 0 :(得分:0)
这很简单:
onButtonClick: function(button, e, eOpts) {
Ext.getCmp("optionsForm").getForm().updateRecord(Ext.getStore("optionsStore").getAt(0));
Ext.getStore("optionsStore").getAt(0).setDirty();
Ext.getStore("optionsStore").commitChanges();
Ext.getStore("optionsStore").sync();
}