Не удается прочитать свойство «mergeAttributes» нулевой ошибки, когда я пытаюсь вставить новые записи с помощью редактора сетки extjs

Прежде всего, я использую 6.2 версию extjs framework.

У меня возникла проблема с сохранением новых записей с помощью сетки ext.js с плагином «Ext.grid.plugin.RowEditing».

Когда пытаюсь сохранить запись, так как у строки нет выпадающего списка в редакторе, то работает нормально.

Однако когда я добавляю поле со списком в редактор строк, возникает следующая ошибка:

Не удается прочитать свойство «mergeAttributes» с нулевым значением

Проверив код фреймворка extjs, я заметил, что ошибка возникает при выходе из редактора и заполнении строки измененным содержимым.

Это происходит в следующем разделе файла Table.js:

    cellSelector = me.getCellSelector(column);
    oldCell = oldRow.selectNode(cellSelector);
    newCell = newRow.selectNode(cellSelector);

    // Copy new cell attributes across. Use IE-specific method if possible.
    if (oldCell.mergeAttributes) {
        oldCell.mergeAttributes(newCell, true);
    } else {
        newAttrs = newCell.attributes;
        attLen = newAttrs.length;
        for (attrIndex = 0; attrIndex < attLen; attrIndex++) {
            attName = newAttrs[attrIndex].name;
            if (attName !== 'id') {
                oldCell.setAttribute(attName, newAttrs[attrIndex].value);
            }
        }
    }

По сути, переменная «oldCell» не заполняется «oldRow.selectNode (cellSelector)».

В первый столбец я помещаю невидимый столбец, содержащий идентификатор записи. Эта ячейка заполняется, однако любая другая ячейка, имеющая поле со списком или нет, возвращает «oldCell» как нуль.

Просто чтобы обеспечить, когда я удаляю все поля со списком из редактора, это работает.

Это также справедливо только для новых записей.


person André Cristino    schedule 05.04.2017    source источник


Ответы (2)


К счастью, ошибку легко исправить.

У меня есть «рендеринг» в столбце, где находится поле со списком.

В этом рендере произошла необработанная ошибка. Итак, я исправил это, и ошибка исчезла.

person André Cristino    schedule 10.04.2017

@André Cristino: я считаю, что это рендерер в столбце, а не рендеринг. В принципе, оба разные.

Термин "Визуализация" используется при создании компонента.
Средство визуализации – это своего рода шаблон, используемый для изменения данных в ячейке сетки.

Хотя у меня нет ошибок в рендерере, я все еще сталкиваюсь с проблемой mergeAttributes.

person Nandeesh    schedule 09.03.2018