首页 > 解决方案 > 未捕获的类型错误:无法读取属性 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点击时不会。任何帮助,将不胜感激。谢谢你。

标签: node.jsag-grid

解决方案


我可以重现这个问题。当您使用 editable: false 切换到下一列时,它会给出错误。如果您评论选项可编辑:false,选项卡将正常工作。

我想您可能需要实现自己的 tabToNextCell:https ://www.ag-grid.com/javascript-grid-keyboard-navigation/#tabtonextcell

我正在弄清楚如何跳过可编辑:错误单元格。


推荐阅读