нет метода getEditor () ошибка при объединении CellEditing с моделью выбора флажка в ExtJS 4.0 GridPanel - PullRequest
0 голосов
/ 15 декабря 2011

я использую extjs 4.0 и пытаюсь объединить редактируемую сетку с моделью выбора флажка. Проблема в том, когда я нажимаю на флажок, я получаю это сообщение об ошибке

Uncaught TypeError: Object [object Object] has no method 'getEditor'

мне ясно, что столбец флажка не должен редактироваться (в виде подключаемого модуля), поэтому функция getEditor отсутствует.

Я попытался определить прослушиватель beforeedit для компонента CellEditing, который пропускает редакцию для colIdx = 0, но даже не вызывается, потому что ошибка возникает непосредственно перед этим, в методе startEditByClick.

Итак, мой вопрос, должен ли я:

а) определить функцию getEditor NO-OP и связать ее с первым столбцом? я не знаю, возможно ли это вообще

б) определить слушателя, чтобы пропустить издание, когда colIdx = 0, который срабатывает до вызова функции startEditByClick? на каком событии какого компонента это будет?

c) игнорировать ошибки JavaScript, если он работает (: P)

вот код

var cellEditing = Ext.create('Ext.grid.plugin.CellEditing', {
    clicksToEdit: 1
});

Ext.define('RPV.view.aviso.AvisosList', {
    extend: 'Ext.grid.Panel',
    store: 'AvisosStore',

    selModel: Ext.create('Ext.selection.CheckboxModel'),
    plugins: [cellEditing],

    initComponent: function () {
        this.columns = [{
            header: 'NIV',
            dataIndex: 'niv',
            flex: 1,
            editable: false
        }, {
            header: 'NCI',
            dataIndex: 'nci',
            flex: 1,
            editable: false
        }, {
            header: 'Tipo movimiento',
            dataIndex: 'tipoMovimiento',
            width: 130,
            field: {
                xtype: 'combobox',
                typeAhead: true,
                triggerAction: 'all',
                selectOnTab: true,
                store: 'TipoMovimientoStore',
                lazyRender: true,
                listClass: 'x-combo-list-small',
                mode: 'remote',
                minChars: 0,
                valueField: 'descripcion',
                displayField: 'descripcion',
                emptyText: 'No especificado'
            }
        }, {
            header: 'Observaciones',
            dataIndex: 'observacionesDwr',
            width: 130,
            field: {
                xtype: 'combobox',
                typeAhead: true,
                triggerAction: 'all',
                selectOnTab: true,
                store: 'ObservacionesStore',
                lazyRender: true,
                mode: 'remote',
                minChars: 0,
                valueField: 'descripcion',
                displayField: 'descripcion',
                autoSelect: false
            }
        }];

        this.callParent(arguments);
    }
});

ОБНОВЛЕНИЕ: нашел эту ссылку http://www.sencha.com/forum/showthread.php?137731-Using-checkbox-selection-model-in-the-editable-grid-produces-an-error&highlight=CellEditing это говорит о том, что это ошибка, это уже исправлено в версии 4.1.0

1 Ответ

1 голос
/ 10 марта 2012

Попробуйте это

onBeforeEditCell : function(event) {        
        if (event.column && event.column.isCheckerHd) {
            return false;
        } 

        return true;
    }

http://www.sencha.com/forum/showthread.php?140253-Ext.grid.plugin.CellEditing-Ext.selection.CheckboxModel-TypeError

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...