Я создал компонент сетки с конфигурацией хранилища, как это:Extjs Restful Store, Отправляющий запрос в Batch?
//Create the store
config.store = new Ext.data.Store({
restful: true,
autoSave: false,
batch: true,
writer: new Ext.data.JsonWriter({
encode: false
}),
reader: new Ext.data.JsonReader({
totalProperty: 'total',
root: 'data',
fields: cfg.fields
}),
proxy: new Ext.data.HttpProxy({
url:cfg.rest,
listeners:{
exception: {
fn: function(proxy, type, action, options, response, arg) {
this.fireEvent('exception', proxy, type, action, options, response, arg);
},
scope: this
}
}
}),
remoteSort: true,
successProperty: 'success',
baseParams: {
start: 0,
limit: cfg.pageSize || 15
},
autoLoad: true,
listeners: {
load: {
fn: function() {
this.el.unmask();
},
scope: this
},
beforeload: {
fn: function() {
this.el.mask("Working");
},
scope: this
},
save: {
fn: function(store, batch, data) {
this.el.unmask();
this.fireEvent('save', store, batch, data);
},
scope: this
},
beforewrite: {
fn: function(){
this.el.mask("Working...");
},
scope: this
}
}
});
Примечание: Игнорируйте fireEvents. Этот магазин настраивается в общем настраиваемом компоненте Grid.
Однако у меня есть одна проблема: какие бы CRUD-действия я ни делал, я всегда получаю N запросов к серверу, который равен N строкам, которые я выбрал. то есть, если я выберу 10 строк и удалю Delete, на сервер будет отправлено 10 запросов DELETE.
Например, это, как я удалять записи:
/**
* Call this to delete selected items. No confirmation needed
*/
_deleteSelectedItems: function() {
var selections = this.getSelectionModel().getSelections();
if (selections.length > 0) {
this.store.remove(selections);
}
this.store.save();
this.store.reload();
},
Примечание: сфера «это» является компонент сетки.
Итак, разве это должно быть так? Или моя проблема с конфигурацией? Я использую Extjs 3.3.1, и в соответствии с документацией batch
под Ext.data.Store,
Если магазин является RESTful, то DataProxy также является RESTful, и уникальная транзакция генерируется для каждой записи ,
Желаю, чтобы это была моя проблема с конфигурацией.
Примечание: Я попытался с listful
, encode
, writeAllFields
, encodeDelete
в Ext.data.JsonWriter
... без надежды
Эй, спасибо большое за ваш ответ. Я думал, что это одна из ошибок конфигурации, которые я сделал, что поднимает эту проблему, по крайней мере, вы подтвердили ее со мной. – 2010-12-09 02:23:31
Мне интересно, сохранилось ли это в ExtJS 4.1.3? – justinzane 2012-11-16 23:25:32