Сохранение записи record.
save() не связано с обновлением хранилища, подложенного под грид, несмотря на то, что эта запись относится к этому хранилищу.
Думаю, чтобы синхронизация затронула хранилище грида, нужно вначале получить его через
record.store, а затем выполнить sync().
Либо попробовать
record.commit(false).
Из моего арсенала:
onNewSubmitted: function(record) {
record.save({
success: function() {
var view = this.getView();
var companyGrid = view.down('companyGrid');
var store = Ext.StoreManager.lookup('companyStore');
store.add(record);
companyGrid.getSelectionModel().select(record);
},
scope: this
});
},
onNewCanseled: function() {
var view = this.getView();
var cardContainer = view.down('#cardContainer');
var companyNew = view.down('companyNew');
var record = companyNew.getRecord();
record.erase();
companyNew.reset(true);
cardContainer.hide();
},
onDeleteRequested: function(record) {
var view = this.getView();
var cardContainer = view.down('#cardContainer');
var companyForm = view.down('companyForm');
var companyDisplay = view.down('companyDisplay');
if (record.phantom) {
cardContainer.hide();
companyForm.reset(true);
companyDisplay.reset(true);
return;
}
Ext.Msg.show({
title:'Удаление',
message: 'Действительно удалить запись?',
buttons: Ext.Msg.YESNO,
buttonText: {
yes: 'Да',
no: 'Нет'
},
icon: Ext.Msg.QUESTION,
fn: function(btn) {
if (btn === 'yes') {
//var store = Ext.StoreManager.lookup('companyStore');
record.erase();
}
}
});
},