Проверка данных RowEditor в ExtJS 4 - PullRequest
4 голосов
/ 29 января 2012

Я разработал приложение на основе шаблона MVC. Поэтому я также определил мои прокси, поля и валидаторы в моей модели. Вот, например, модель для списка стран:

Модель

Ext.define('LT.model.Country',{

    extend: 'Ext.data.Model',
    fields: [{name: 'id',type: 'int'},
             {name: 'name', type: 'string'},
    ],

    validations: [
        {type: 'length', field: 'name', min: 2}
    ],

    proxy: {
        type: 'rest',
        url: '/country',
        reader: {
            type: 'json'
        },
        writer: {
            type: 'json'
        }    
   }
});

А вот магазин для использования этой модели:

Магазин:

Ext.define('LT.store.Country', {
    extend: 'LT.base.store.Base',
    model:  'LT.model.Country'
});

Магазин отображается на панели сетки , где я использую плагин RowEditor , чтобы включить добавление и редактирование строк непосредственно в виде сетки

Сетка:

    Ext.define('LT.view.country.List' ,{
    extend: 'Ext.grid.Panel',
    alias : 'widget.country-list',
    plugins: [
        Ext.create('Ext.grid.plugin.RowEditing', {
            clicksToEdit: 2,
            clicksToMoveEditor: 1
        })
    ],
    store : 'Country',

    columns: [
            {header: 'ID',  dataIndex: 'id', width: 50},
            {header: 'Name', dataIndex: 'name', flex: 3, editor: 'textfield'},

    ],
    tbar: [{
        xtype: 'button',
        action: 'add',
        text: 'Add'
    },{
        xtype: 'button',
        action: 'delete',
        text: 'Delete'
    }]

});

Моя проблема теперь заключается в том, что Ошибки проверки не отображаются , если вы редактируете данные в виде сетки. Если данные не соответствуют критериям проверки, они не передаются прокси-серверу (это нормально), но пользователь также не получает сообщение об ошибке о том, что введенные данные недействительны .

Я нашел некоторые (не очень красивые) обходные пути - но, может быть, кто-нибудь знает другое решение для добавления функциональности проверки в редактирование строк в extjs?

Спасибо заранее и ура, Michael

1 Ответ

2 голосов
/ 29 января 2012

Интеграция проверки Ext.grid.panel и Ext.data.Model.validations

Приведенный выше ответ говорит о подходе, которому вы можете следовать

...