Ext.grid.editorgrid — Как отправить только первый ряд отредактированных данных?

Я застрял с этим компонентом. Каждый раз, когда я вызываю скрипт обновления для сетки редактора, данные, отправляемые в PHP, являются первой отредактированной строкой, но если я редактирую вторую строку, отправляемые данные редактируются в первую и вторую строки. Если я редактирую третий случай, тот же самый, данные, отправляемые в PHP, — это первая, вторая и третья отредактированные строки. Есть ли способ отправить только данные отредактированной строки?

Вот мой код:

var MCompetidoresGrid = new Ext.grid.EditorGridPanel({
store       : MCompetidoresStore,
columns     : [
MCompetidoresSm,
{header:'id',               dataIndex:'id',         sortable: true, width:30,   },
{header:'Empresa',          dataIndex:'id_empresa', sortable: true, width:120,  },
{header:'CIF',              dataIndex:'cif',        sortable: true, width:120,  editor:MCompetidorestextField},  //NUEVO CAMPO 12-03-2015
{header:'Acronimo',         dataIndex:'codigo',     sortable: true,  width:60,  editor:MCompetidorestextField},
{header:'Competidor',       dataIndex:'nombre',     sortable: true, width:200,  editor:MCompetidorestextField},
{header:'Descripcion',      dataIndex:'descripcion',sortable: true,  width:320, editor:MCompetidorestextField}
],
sm          : MCompetidoresSm,
border      : false,
stripeRows  : true,
viewConfig:{
markDirty:false
}
});

var MCompetidoresStore = new Ext.data.Store({
id          : "id",
proxy       : MCompetidoresProxy,
reader      : MCompetidoresReader,
writer      : MCompetidoresWriter,
autoSave    : true
});

var MCompetidoresWriter = new Ext.data.JsonWriter({
encode          : true,
writeAllFields  : false
});

var MCompetidoresReader = new Ext.data.JsonReader({
totalProperty   : 'total',
successProperty : 'success',
messageProperty : 'message',
idProperty      : 'id',
root            : 'data'
},[
{name: 'id'},
{name: 'id_empresa'},
{name: 'cif'},
{name: 'codigo'},
{name: 'nombre'},
{name: 'descripcion'},
]);

var MCompetidoresProxy = new Ext.data.HttpProxy({
api: {
read    : "./Competenciaphp/MtoMaestro/getContacts.php"+"?"+"cliente="+despliegue,
create  : "./Competenciaphp/MtoMaestro/createContact.php"+"?"+"cliente="+despliegue,
update  : "./Competenciaphp/MtoMaestro/updateContact.php"+"?"+"cliente="+despliegue,
destroy : "./Competenciaphp/MtoMaestro/destroyContact.php"+"?"+"cliente="+despliegue
},
});

0

Решение

Я только знаком с местным магазином, но, если это возможно, я могу предложить вам добавить store.commitChanges() в вашем успешном событии обновления. (что-то вроде того, что мы можем сделать с помощью вызова ajax). Или добавьте событие обновления в определение вашего магазина, чтобы сделать commitChanges:

var MCompetidoresStore = new Ext.data.Store({
id          : "id",
proxy       : MCompetidoresProxy,
reader      : MCompetidoresReader,
writer      : MCompetidoresWriter,
autoSave    : true,
listeners:
{
update:function(){
this.commitChanges();
}
}
});
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]