Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / ExtJs + jsp. Сохранить измененные данные из Store в Oracle / 10 сообщений из 10, страница 1 из 1
06.03.2013, 10:56
    #38175651
Dan_Irkutskiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJs + jsp. Сохранить измененные данные из Store в Oracle
В jsp подгружаю js файлик. В нём:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
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('Ошибка', 'Ошибка загрузки данных на форму');
    }
};




Как отправить JSON?
И как принять его в jsp?

Если есть еще не оптимальное написание - подсказывайте. Буду рад любой конструктивной критике.
...
Рейтинг: 0 / 0
06.03.2013, 11:02
    #38175663
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJs + jsp. Сохранить измененные данные из Store в Oracle
насчет "как принять json на сервере" думаю лучше спросить на форуме по Java
jsp - это ведь Java Server Pages, я правильно понял?
...
Рейтинг: 0 / 0
06.03.2013, 11:09
    #38175674
Dan_Irkutskiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJs + jsp. Сохранить измененные данные из Store в Oracle
Да верно Java Server Pages.
...
Рейтинг: 0 / 0
06.03.2013, 11:37
    #38175719
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJs + jsp. Сохранить измененные данные из Store в Oracle
> Если есть еще не оптимальное написание - подсказывайте. Буду рад любой конструктивной критике.

1. Вот этот пассаж:
> Ext.EventManager.on(window,'load',function() {
не нужен: grid сам прекрасно разберется, что он от'render'ился и, в зависимости от Ext.data.Store.autoLoad загрузится. Посмотрите их examples

2.
> var isForm =new Ext.form.FormPanel({
> ...
> items: [
> grid_
> ],
> ...
тоже - нет необходимости. Размещайте кнопки прям в grid'е (хоть на том же Ext.grid.Panel.tbar 'е)

Ну, а как принимать JSON в Java - Вам уже сказали.

_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.03.2013, 12:01
    #38175754
Dan_Irkutskiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJs + jsp. Сохранить измененные данные из Store в Oracle
Кнопки не в гриде потому это не все элементы страницы. Часть не показана.

А как отправлять?

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
                            isForm.getForm().submit({
                                url: 'res/commit.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);
                                }
                            });



Не передает почему-то.
...
Рейтинг: 0 / 0
06.03.2013, 15:34
    #38176183
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJs + jsp. Сохранить измененные данные из Store в Oracle
> А как отправлять?
Ext.data.Store.sync()

> Не передает почему-то.
/me думает: не мудрено... Форма - это форма, а грид - это грид... У каждого своя парафия...

_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.03.2013, 04:38
    #38176829
Dan_Irkutskiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJs + jsp. Сохранить измененные данные из Store в Oracle
Хорошо. Ставлю кнопку в Грид

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
        bbar: [
                {
                    text: 'Сохранить',
	                handler: function(){
                        grid_.getStore().sync();
                    }
                }
        ]



"Объект не поддерживает этот метод или свойство."

Переписал в Store так:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
    proxy: new Ext.data.HttpProxy({
        baseParams:{id:0},
        type: 'ajax',
        api: {
            read: 'res/ds.jsp',
            add: 'res/submit.jsp',
            update: 'res/submit.jsp',
            destroy: 'res/submit.jsp'
        },
        writer: {
            type: 'json',
            root: 'rows'
        }
    }),
    reader: new Ext.data.JsonReader(
    {
        root: 'rows'
    }, [
    ...
    ])



reader срабатывает. В Грид выводится. А вот, что writer написал правильно не уверен.

Но в любом случае это не помогло - "Объект не поддерживает этот метод или свойство."

Ругается на строку:
grid_.getStore().sync();

Куда дальше?
...
Рейтинг: 0 / 0
07.03.2013, 11:30
    #38177021
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJs + jsp. Сохранить измененные данные из Store в Oracle
Dan_Irkutskiy"Объект не поддерживает этот метод или свойство."

Ругается на строку:
grid_.getStore().sync();Я c Ext не знаком, но вот Вам просто совет
такие проблемы надо локализировать
то есть попытаться написать

var dummy = grid_.getStore();
dummy.sync();

а потом глянуть - на какую из двух строк заругается
...
Рейтинг: 0 / 0
07.03.2013, 11:48
    #38177046
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJs + jsp. Сохранить измененные данные из Store в Oracle
тынць
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11.03.2013, 05:04
    #38179293
Dan_Irkutskiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJs + jsp. Сохранить измененные данные из Store в Oracle
Спасибо за помощь.
Проблему локализовал в том, что sync() появилось в 4ке. А у нас не перешли с 3.3. еще. Буду работать в этом направлении.
или искать как это делалось в 3.3.

Ex_Soft , спасибо за пример. Вроде темку читал, до того как свою создать, а файлик прошлый раз не заметил. Посмотрю обязательно.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / ExtJs + jsp. Сохранить измененные данные из Store в Oracle / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]