Как получить значения из сетки и выложить их. ExtJS - PullRequest
0 голосов
/ 16 января 2019

Мне интересно получить getValues ​​из моей сетки и опубликовать их, используя кнопку confirm в пользовательской форме редактирования моей сетки.

Но я понятия не имею, как я могу getValues(). Я не могу использовать это, или потому что значения выполняются внутри xset 'fieldset'.

Как я могу получить значения сетки ... может быть существует какой-то метод, который позволяет установить grideditable плагин config в параметры конфигурации запроса Ajax?

часть моего кода:

Ext.define('Foresto.model.EditListRenters', {
            extend: 'Ext.grid.Grid',
            xtype: 'rentlist',
            requires: [
                'Ext.grid.plugin.Editable',
                'Foresto.model.RentsListModel'
            ],
            store: {
                model: 'Foresto.model.RentsListModel',
                autoLoad: true,
                pageSize: 0,
                proxy: {
                    type: 'ajax',
                    url: '/myownurl',
                    reader: {
                        type: 'json',
                        rootProperty: 'results'
                    }

                }
            },
            plugins: [{
                type: 'grideditable',
                triggerEvent: 'doubletap',
                enableDeleteButton: true,
                formConfig: null,

                defaultFormConfig: {
                    xtype: 'formpanel',
                    title: 'Редактировать договор',
                    scrollable: true,
                    items: {
                        xtype: 'fieldset'
                    }
                },

                toolbarConfig: {
                    xtype: 'titlebar',
                    cls: 'hdr2',
                    height: 46.63,
                    docked: 'top',
                    items: [{
                        xtype: 'button',
                        ui: 'decline',
                        cls: 'grbuttons',
                        text: 'cancel',
                        align: 'left',
                        action: 'cancel'
                    }, {
                        xtype: 'button',
                        ui: 'confirm',
                        cls: 'grbuttons',
                        text: 'submit',
                        align: 'right',
                        action: 'submit',
                        handler: function() {

                            var rentset = _.getValues() //how get values??



                            Ext.Ajax.request({
                                url: '/myownurl/contract/',
                                method: 'POST',
                                params: rentset
                            })
                        }
                    }]
                }

            }],
            columns: [ //my columns]
  });

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Extjs использует шаблон MVC, поэтому вам не нужно копать измененные значения вручную. Ваши записи данных (чистые и грязные) находятся в хранилище, соединение управляется прокси. Сетка - это просто визуальный компонент для визуализации данных, а ее плагины помогают при изменении данных.

Не (повторно) создавать новый запрос внутри вашей функции, но просить магазин выполнить эту работу:

handler: function () {
    form.updateRecord();
    form.hide();
    grid.getStore().sync();
}

также укажите параметры прокси:

proxy: {
    type: 'ajax',
    batchActions: true,
    url: './myownurl',
    actionMethods: {
        create: 'POST',
        read: 'POST',
        update: 'POST',
        destroy: 'POST'
    },
    reader: {
        type: 'json',
        rootProperty: 'results'
    },
    writer: {
        type: 'json',
        root: 'data',
        encode: true,
        writeAllFields: true,
    }
}
0 голосов
/ 16 января 2019

получить измененные записи, используя

grid.getStore().getModifiedRecords();

Получает все записи, добавленные или обновленные с момента последней фиксации.

...