Store сохранение изменений в БД
ExtJS+jsp
В jsp загружаю js файлик. var ds_= new Ext.data.Store({ baseParams:{id:0}, url: 'res/ds.jsp', reader: new Ext.data.JsonReader( … } }); Ext.EventManager.on(window, 'load', function() { ds_.load({params:{id:1}, callback:onError}); var colmod = new Ext.grid.ColumnModel({ … }; var grid_ = new Ext.grid.GridPanel({ id:'grid_', frame:true, store: ds_, layout: 'fit', loadMask:true, autoScroll: true, colModel: colmod, height:240, title:Name, selModel: new Ext.grid.CellSelectionModel({ listeners: { beforecellselect: function (sm, rowIndex, colIndex) { var record = grid_.getStore().getAt(rowIndex); record.set('Pole','1'); } } }) }); var isForm = new Ext.form.FormPanel({ title: 'Титл', width:630, id:'isForm', items: [ grid_ ], buttons: [ { text: 'Сохранить', handler: function() { isForm.getForm().submit({ url: 'res/submit.jsp', waitMsg: 'Сохраняем...', method:'POST', success: function(isForm, o) { Ext.Msg.show({ title:'Сообщение', msg: 'Успешно сохранено.', buttons: Ext.Msg.OK, fn: function(btn, text) { if (btn == 'ok') { window.returnValue = 1; window.close(); } }}) }, failure:function(form, action) { Ext.Msg.alert('Ошибка записи данных', action.result.errors); } }); grid_.getStore().commitChanges(); } }, { text: 'Отмена', handler: function() { window.close(); } } ] }); isForm.render('panels-all'); } Так естественно Store не передается. Что не хватает? И что написать в submit.jsp в плане приема Store? |
Цитата:
|
var ds_ = new Ext.data.Store({ baseParams:{id:0}, url: 'res/ds.jsp', reader: new Ext.data.JsonReader(....) }); Ext.EventManager.on(window, 'load', function() { ds_.load({params:{id:1}, callback:onError}); var colmod = new Ext.grid.ColumnModel({...}); var grid_ = new Ext.grid.GridPanel({ id:'grid_', frame:true, store: ds_, layout: 'fit', loadMask:true, autoScroll : true, colModel: colmod, title:Name, selModel : new Ext.grid.CellSelectionModel({ listeners: { beforecellselect: function (sm, rowIndex, colIndex) { var record = grid_month.getStore().getAt(rowIndex); record.set('Pole','Новое значение'); } } }) }); var isForm = new Ext.form.FormPanel({ title: 'Титл', id:'isForm', items: [ grid_ ], buttons: [ { text: 'Сохранить', handler: function() { // Тут надо вписать отправление JSON на страницу commit.jsp } }, { text: 'Отмена', handler: function() { window.close(); } } ] }); isForm.render('panels-all'); }); function onError(r, options, success) { if (!success) { Ext.Msg.alert('Ошибка', 'Ошибка загрузки данных на форму'); } }; |
Часовой пояс GMT +3, время: 22:19. |