Extjs 4.2 store.sync()创建/更新
我有这家店: 商店Extjs 4.2 store.sync()创建/更新,extjs,extjs4.2,Extjs,Extjs4.2,我有这家店: 商店 Ext.define('App.mystore', { extend: 'Ext.data.Store', model: 'App.mymodel', autoLoad: false, proxy: { type: 'ajax', api: { read: 'read.php', create: 'create.php', update: 'update.php' }, reader:
Ext.define('App.mystore', {
extend: 'Ext.data.Store',
model: 'App.mymodel',
autoLoad: false,
proxy: {
type: 'ajax',
api: {
read: 'read.php',
create: 'create.php',
update: 'update.php'
},
reader: {
type: 'json',
root: 'data',
totalProperty: 'total',
successProperty: 'success'
},
writer: {
root: 'records',
encode: true,
writeAllFields: false
}
}
});
这个存储是一个网格,点击一个按钮我可以添加一行,如果我选择了前一行(插入到数据库中),我可以编辑它的数据
完成所有操作后,我单击一个按钮将存储与数据库同步
此按钮使用以下代码调用函数:
onSave:function(){
var Store=Ext.ComponentQuery.query('mygrid')[0].getStore();
Store.getProxy().setExtraParam('param1',this.Param1);
Store.getProxy().setExtraParam('param2',this.Param2);
Store.getProxy().setExtraParam('param3',this.Param3);
Store.sync({
scope:this,
success : function(response){
Ext.Msg.show({
title: 'Information',
msg: 'All OK',
icon: Ext.MessageBox.INFO,
buttons: Ext.Msg.OK
});
},
failure:function(response){
Ext.Msg.show({
title: 'warning',
msg: 'Error',
icon: Ext.MessageBox.WARNING,
buttons: Ext.Msg.OK
});
}
});
},
我可以分两步同步存储吗?首先是新记录,然后是修改的记录?因为我需要知道这两个操作是否都成功。因为用户可以添加新行并编辑一些旧行。商店的“”事件在这里可能很有用。第一个参数是一个对象,操作类型为键,操作列表为值。因此,您可以操纵将执行的操作。谢谢,我将尝试。