node.js - 未捕获的类型错误:无法读取属性 getColSpanningList
问题描述
我正在使用 ag-Grid 和 Node.js 在数据库中进行一些更新。我正在对 5 个字段进行计算。我正在使用该onCellValueChanged
事件来计算field2
, field3
, field4
,field5
基于field1
. 当有mouse
点击事件时,我可以看到变化。TAB
但是,当我敲击键盘上的键时,问题就出现了。它给了我这个错误:
ag-grid-community.min.noStyle.js:110 Uncaught TypeError: Cannot read property 'getColSpanningList' of undefined
at t.getLastCellOfColSpan (ag-grid-community.min.noStyle.js:110)
at t.findNextCellToFocusOn (ag-grid-community.min.noStyle.js:110)
at t.moveToNextEditingCell (ag-grid-community.min.noStyle.js:110)
at t.moveToCellAfter (ag-grid-community.min.noStyle.js:110)
at t.onTabKeyDown (ag-grid-community.min.noStyle.js:110)
at t.onTabKeyDown (ag-grid-community.min.noStyle.js:242)
at t.onKeyDown (ag-grid-community.min.noStyle.js:242)
at t.processKeyboardEvent (ag-grid-community.min.noStyle.js:530)
这是我的 ejs 模板:
选择.ejs
var tableCols = <%- JSON.stringify(tables) %>;
var rowData = tableCols;
var columnDefs = [
{headerName: "Field1", field: "field1", editable: true},
{headerName: "Field2", field: "field2"},
{headerName: "Field3", field: "field3"},
{headerName: "Field4", field: "field4"},
{headerName: "Field5", field: "field5"},
{headerName: "Total", field: "total"}
];
var gridOptions = {
columnDefs: columnDefs,
rowData: rowData,
onCellValueChanged: function(params){
var d = params.data.field1;
var id = params.data.Unique_ID;
params.field2 = (.25 * params.data.field1).toFixed(2);
var q = params.data.field2;
params.data.field3 = (0 * params.data.field1).toFixed(2);
var b = params.data.field3;
params.data.field4 = (.175 * params.data.field1).toFixed(2);
var p = params.data.field4;
params.data.field5 = (.20 * params.data.field1).toFixed(2);
var a = params.data.field5;
params.data.total = (parseFloat(params.data.field1) + parseFloat(params.field2 ) + parseFloat(params.data.field3) + parseFloat(params.data.field4) + parseFloat(params.data.field5)).toFixed(0);
var t = params.data.total;
this.api.refreshCells();
},
onCellEditingStarted: function(event){
console.log("started");
},
// this is where the error happens, then logs "cellEditingStopped"
onCellEditingStopped: function(event) {
console.log('cellEditingStopped');
}
};
我不明白TAB
按键如何导致错误,但MOUSE
点击时不会。任何帮助,将不胜感激。谢谢你。
解决方案
我可以重现这个问题。当您使用 editable: false 切换到下一列时,它会给出错误。如果您评论选项可编辑:false,选项卡将正常工作。
我想您可能需要实现自己的 tabToNextCell:https ://www.ag-grid.com/javascript-grid-keyboard-navigation/#tabtonextcell
我正在弄清楚如何跳过可编辑:错误单元格。
推荐阅读
- azure - 具有多个侦听器的 Azure 中继混合连接
- java - 映射两个 java 对象具有相同的字段
- javascript - 从客户端(浏览器)限制 WebRTC 带宽
- nginx - Nginx 静态页面 curl 工作,但浏览器不工作
- html - 水平居中对齐按钮
- reactjs - 这个组件是什么以及它与其他组件有何不同
- django - 如果搜索栏中输入的关键字在Django中不存在,如何应用if else
- javascript - 如何在折线图的 x 和 y 坐标的每个点上放置圆圈?
- elasticsearch - 在弹性搜索中忽略阿拉伯语变音符号
- sql - 调用位于 where 子句上的子查询变量