根据http://dev.sencha.com/deploy/ext-4.0.1/examples/grid/row-editing.html示例,我的网格上有以下代码,以方便我的商店添加新记录:
tbar: [{
text: 'Add Rate',
handler: function(button) {
var myGrid = button.up('grid');
//console.log(myGrid);
var myPlugin = myGrid.getPlugin('rowediting');
myPlugin.cancelEdit();
var r = Ext.create('RateManagement.model.CountrySpecific', {
id: '',
hostCountryId: '',
hostCountry: '',
rate: 0,
currencyId: '',
rateTypeId: '',
frequencyCode: '',
perFamilyMember: '',
familySize: 0
});
console.log(r);
var store = myGrid.getStore();
store.insert(0, r);
myPlugin.startEdit(0, 0);
}
}],
这是我的代理模型:
Ext.define('RateManagement.model.CountrySpecific', {
extend: 'Ext.data.Model',
fields:
[
{name:'id', type: 'string'},
{name:'hostCountryId', type: 'string'},
{name:'hostCountry', type: 'string'},
{name:'rate',type: 'number', useNull: true},
{name:'currencyId', type: 'string'},
{name:'rateTypeId', type:'string'},
{name:'frequencyCode', type:'string'},
{name:'perFamilyMember'},
{name:'familySize', type: 'int', useNull: true}
],
proxy: {
type: 'rest',
format: 'json',
url: '/intake/sap/rates/CountrySpecific',
actionMethods: {
create : 'PUT',
read : 'GET',
update : 'PUT',
destroy: 'PUT'
}
}
});
每当我点击“添加费率”将新记录插入我的商店时,它就会调用我的代理并生成GUID。但是,当我点击该记录上的“更新”时,没有ID值 - 它只是null。因此,它只是插入一条新记录而不是更新我刚创建的现有记录。
那么,有没有办法使用代理的reader
尝试使用生成的新ID更新我的模型?
或者,我是否采取了错误的方式?