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, время: 06:10. |