Показать сообщение отдельно
  #10 (permalink)  
Старый 08.07.2012, 00:43
Аватар для Ex_Soft
Профессор
Отправить личное сообщение для Ex_Soft Посмотреть профиль Найти все сообщения от Ex_Soft
 
Регистрация: 19.12.2009
Сообщений: 164

Сообщение от potkin Посмотреть сообщение
Сообщение от Ex_Soft Посмотреть сообщение
как-то не стыкуются (ведь, насколько я понял, вы хотите скрестить ужа и ежа, сиречь - Ext.form.Panel и Ext.grid.Panel)...
Сохраняя грид, передаю "за компанию" и параметры
Я так подозреваю - имеет место ошибка коммуникации. Подразумевалось, что Ext.form.Panel должна знать о Ext.grid.Panel (или наоборот) и, соответственно, взаимодействовать с ней со всеми вытекающими...

Сообщение от potkin Посмотреть сообщение
Под 4.0.7 - отсылаются на Сервер все данные сразу
Вот Вам дрозофила
Ext.onReady(function() {
	if(window.console && console.clear)
		console.clear();

	if(window.console && console.log)
		console.log("core: %s, extjs: %s", Ext.versions.core.version, Ext.versions.extjs.version);

	var
		extraParamField = Ext.create("Ext.form.field.Text", {
			value: "extraParamValue"
		}),
		store = Ext.create("Ext.data.Store", {
			fields: [
				{ name: "id", type: "int" },
				"name"
			],
			proxy: {
				type: "ajax",
				url: "handler.ashx"
			},
			listeners: {
				beforesync: function(options, eOpts) {
					this.getProxy().extraParams = {
						extraParamValue: extraParamField.getValue()
					};
				}
			},
			data: [
				{ id: 1, name: "Record# 1" },
				{ id: 2, name: "Record# 2" },
				{ id: 3, name: "Record# 3" },
				{ id: 4, name: "Record# 4" }
			]
		}),
		grid = Ext.create("Ext.grid.Panel", {
			store: store,
			columns: [
				{ dataIndex: "id", header: "id", editor: { xtype: "numberfield" }, flex: 1 },
				{ dataIndex: "name", header: "name", editor: { xtype: "textfield" }, flex: 1 }
			],
			plugins: [
				Ext.create("Ext.grid.plugin.CellEditing", {
					clicksToEdit: 2
				})
			],
			tbar: [{
				text: "Add",
				handler: function(btn, e) {
					store.add(Ext.create(store.getProxy().getModel(), { name: "blah-blah-blah" }));
				}
			}, {
				text: "Del",
				handler: function(btn, e) {
					var
						grid,
						sm,
						sel;

					if(!(grid=btn.up("grid"))
						|| !(sm=grid.getSelectionModel())
						|| !(sel=sm.selected)
						|| !sm.hasSelection())
						return;

					store.remove(sel.items);
				}
			}, {
				text: "Save",
				handler: function(btn, t) {
					store.sync();
				}
			},
				extraParamField
			],
			renderTo: Ext.getBody()
		});
});

Удаляем + редактируем + добавляем, а затем - сохраняем. В Firebug'е видим - 3 (три) запроса. Что я делаю не так?
__________________
"Helo, word!" - 17 errors 56 warnings

Последний раз редактировалось Ex_Soft, 08.07.2012 в 00:54.
Ответить с цитированием