Javascript 无法读取属性';合并属性';尝试使用extjs网格编辑器插入新记录时出现空错误
首先,我使用的是extjs框架的6.2版本 我在使用ext.js网格和“ext.grid.plugin.RowEditing”插件保存新记录时遇到了一个问题 当我试图保存一条记录时,因为该行在编辑器中没有组合框,所以它可以正常工作 但是,当我在行编辑器中添加组合框时,会发生以下错误: 无法读取null的属性“mergeAttributes” 通过检查extjs框架代码,我注意到当编辑器退出并且该行被修改的内容填充时会发生错误 这发生在Table.js文件的以下部分: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
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:我相信这是列中的渲染器,而不是渲染器。 基本上,两者是不同的 创建组件时使用渲染术语。
渲染器是一种模板,用于更改网格单元中的数据 虽然渲染器中没有任何错误,但我仍然面临合并属性问题