Javascript 无法读取属性';合并属性';尝试使用extjs网格编辑器插入新记录时出现空错误

Javascript 无法读取属性';合并属性';尝试使用extjs网格编辑器插入新记录时出现空错误,javascript,extjs,combobox,extjs-grid,extjs6.2,Javascript,Extjs,Combobox,Extjs Grid,Extjs6.2,首先,我使用的是extjs框架的6.2版本 我在使用ext.js网格和“ext.grid.plugin.RowEditing”插件保存新记录时遇到了一个问题 当我试图保存一条记录时,因为该行在编辑器中没有组合框,所以它可以正常工作 但是,当我在行编辑器中添加组合框时,会发生以下错误: 无法读取null的属性“mergeAttributes” 通过检查extjs框架代码,我注意到当编辑器退出并且该行被修改的内容填充时会发生错误 这发生在Table.js文件的以下部分: cellSelect

首先,我使用的是extjs框架的6.2版本

我在使用ext.js网格和“ext.grid.plugin.RowEditing”插件保存新记录时遇到了一个问题

当我试图保存一条记录时,因为该行在编辑器中没有组合框,所以它可以正常工作

但是,当我在行编辑器中添加组合框时,会发生以下错误:

无法读取null的属性“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);
            }
        }
    }
cellSelector=me.getCellSelector(列);
oldCell=oldRow.selectNode(cellSelector);
newCell=newRow.selectNode(cellSelector);
//复制新的单元格属性。如果可能,使用IE特定的方法。
if(oldCell.mergeAttributes){
合并属性(newCell,true);
}否则{
newAttrs=newCell.attributes;
attLen=新属性长度;
对于(attrIndex=0;attrIndex
基本上,变量“oldCell”不是由“oldRow.selectNode(cellSelector)”填充的

在第一列中,我放置了一个包含记录Id的不可见列。正在填充此单元格,但是,任何其他单元格,无论是否具有组合框,都会将“oldCell”返回为null

只是为了强制执行,当我从编辑器中删除所有组合框时,它会工作


只有新记录也是如此。

幸运的是,该错误很容易修复

我在组合框所在的列中有一个“render”


此渲染中发生未处理的错误。因此,我纠正了它,错误消失了。

幸运的是,错误很容易修复

我在组合框所在的列中有一个“render”


此渲染中发生未处理的错误。因此,我纠正了它,错误消失了。

@AndréCristino:我相信它是列中的渲染器,而不是渲染器。 基本上,两者是不同的

创建组件时使用渲染术语。
渲染器是一种模板,用于更改网格单元中的数据


虽然渲染器中没有任何错误,但我仍然面临合并属性问题。

@AndréCristino:我相信这是列中的渲染器,而不是渲染器。 基本上,两者是不同的

创建组件时使用渲染术语。
渲染器是一种模板,用于更改网格单元中的数据

虽然渲染器中没有任何错误,但我仍然面临合并属性问题