Цитата:
|
как-то не стыкуются (ведь, насколько я понял, вы хотите скрестить ужа и ежа, сиречь - Ext.form.Panel и Ext.grid.Panel)...
|
Сохраняя грид, передаю "за компанию" и параметры:
store.proxy.extraParams.ParamTextField01 = "XXX01";
store.proxy.extraParams.ParamTextField02 = "XXX02";
store.save({
//Надо обязательно получить ответ: сохранило или же нет.
});
Параметры - это Шапка: ТекстФилд, ЧексБоксы, КомбоБоксы, ..., их определённое количество (оно не меняется).
Грид - табличная часть, количество меняется.
Цитата:
|
"Не верю" (c) См. выше + Ext.data.AbstractStore.sync() - там тот же if ( needsSync ...
|
Зачем мне обманывать?
Могу видео на ЮТуб закинуть ...
Код такой:
<script type="text/javascript" src='http://dev.sencha.com/deploy/ext-4.0.7-gpl/ext-all.js'></script>
<link rel="stylesheet" href="http://dev.sencha.com/deploy/ext-4.0.7-gpl/resources/css/ext-all.css" />
....
// *** *** *** МОДЕЛЬ *** *** ***
Ext.define('BarCode', { extend: 'Ext.data.Model', fields: ...
// *** *** *** ХРАНИЛИЩЕ *** *** ***
var storeGridBarCode = Ext.create('Ext.data.JsonStore', {
restful: true,
pageSize: 40,
model: 'BarCode',
proxy: {
type: 'rest', //'ajax',
batchActions: true,
url: "Handlers/DirGrid.ashx?pID=BarCode",
reader: { type: "json", successProperty: 'success', root: "BarCode", messageProperty: 'message' },
writer: { type: "json", encode: false, root: "BarCode" }
}
}); storeGridBarCode.load();
var rowEditing = Ext.create('Ext.grid.plugin.RowEditing');
// *** *** *** П-Е *** *** ***
var PanelGridBarCode = Ext.create("Ext.grid.Panel", {
autoScroll: true,
store: storeGridBarCode,
columns: [{...} ],
plugins: [rowEditing],
bbar: new Ext.PagingToolbar({ store: storeGridBarCode, displayInfo: true, displayMsg: 'Showing {0} - {1} of {2}'}),
dockedItems: [
{ xtype: 'toolbar', items: [
{ text: 'Add', handler: function () { storeGridBarCode.insert(0, new BarCode()); rowEditing.startEdit(0, 0); }},
'-',
{ itemId: 'delete', text: 'Delete', disabled: true, handler: function () { var selection = PanelGridBarCode.getView().getSelectionModel().getSelection()[0]; if (selection) { storeGridBarCode.remove(selection); } } }
]
}
]
});
PanelGridBarCode.getSelectionModel().on('selectionchange', function (selModel, selections) { PanelGridBarCode.down('#delete').setDisabled(selections.length === 0); });
//Сохранение:
storeGridBarCode.getProxy().url = "Handlers/..."; //Меняем УРЛ
//Параметры Шапки
store.proxy.extraParams.ParamTextField01 = "XXX01";
store.proxy.extraParams.ParamTextField02 = "XXX02";
storeGridBarCode.sync({ ... });
Под 4.0.7 - отсылаются на Сервер все данные сразу, кроме приёма клиентом ответа с сервера (((
Под 4.1.0 - есть приём клиентом ответа с сервера, но отсылаются на Сервер данные по частям (((
4.1.0:
<script type="text/javascript" src='http://dev.sencha.com/deploy/ext-4.1.0-gpl/ext-all.js'></script>
<link rel="stylesheet" href="http://dev.sencha.com/deploy/ext-4.1.0-gpl/resources/css/ext-all.css" />