jquery - HandsonTable setDataAtCell 不起作用

标签 jquery excel handsontable

我们正在尝试使用 HandsonTable 构建一个类似 Excel 的表格。 由于某种原因,setDataAtCell 方法似乎不起作用。 在调试时,我看到此方法已正确设置数据,但在显示表格时,未显示更新的值。我可能正在做一些真正垃圾的事情。非常感谢您的帮助。 代码如下:

            container.handsontable({
                data: getChemicalData(),
                minRows: 5,
                minCols: 6,
                minSpareRows: 2,
                minSpareCols: 0,
                colHeaders: ["<b>TUBE</b>", "<b>A</b>", "<b>B</b>", "<b>C</b>", "<b>D</b>", "<b>Total in Item, grams</b>"],
                colWidths: [200,50,50,50,50,100],
                columns: [
                    {
                        data: "Effect",
                        type: {editor: Handsontable.AutocompleteEditor },
                        source: ["RD", "SB", "WG"],
                        strict: true

                    },
                    {
                        data: "A"
                    },
                    {
                        data: "B"
                    },
                    {
                        data: "C"
                    },
                    {
                        data: "D"
                    },
                    {   
                        data: "TotalInGms",
                        readOnly: true
                    }

                ],

            cells: function (row, col, prop) 
            {       
                var cellProperties = {};
                if ((row === 0 && col === 0) || (row === 1)) 
                {
                    cellProperties.readOnly = true; 
                }
                return cellProperties;
            },
            onBeforeChange: function (data) {


                if (data[0][1] !== "Effect") {

                    if (parseInt(data[0][3]) > 0) {

                    }
                    else {
                        return false;
                    }
                }

            },
                onChange: function (data, source) {
                if (source === 'loadData') {
                    return; //don't show this change in console
                }

                if (isBypass === true) {
                    return;
                }
                var sel = $("#example").handsontable('getSelected');
                if (sel != null) {
                    if (sel[0] === 0) {
                        var noOfRows = $("#example").handsontable('countRows');
                        var totalGmsPerItem = 0;
                        var gmsPerTube = 0;
                        for (var i = 2; i < noOfRows; i++) {
                            gmsPerTube = parseInt($("#example").handsontable('getDataAtCell', i, sel[1]));
                            if (gmsPerTube > 0) {
                                totalGmsPerItem = parseInt(totalGmsPerItem) + gmsPerTube * parseInt(data[0][3]);
                            }
                        }
                        var noOfCols = $("#example").handsontable('countCols');

                        isBypass = true;
                        $("#example").handsontable('setDataAtCell', 3, 2, totalGmsPerItem);
                        //$("#example").handsontable('setDataAtCell', sel[0],sel[1], 19);
                        isBypass = false;

                    }
                }

                return;

            }


            });

最佳答案

来自wiki :

handsontable('setDataAtCell', row, col, value)

Set new value to a cell. To change many cells at once, pass an array of changes in format [[row, col, value], ...] as the only parameter. Col is the index of visible column (note that if columns were reordered, the current order will be used)

您一定像我一样下载了一个损坏的版本,其中没有 setDataAtRowProp 方法,而 setDataAtCell 接受该方法的参数。

关于jquery - HandsonTable setDataAtCell 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14200791/

相关文章:

excel - 根据 Excel 中两个不相邻单元格的值创建范围

JasperReports/iReport 中的 Excel 数据源 : Unable to get value for field  'Date'  of class  'java.sql.Date'

javascript - 如何获取 Handsontable 中先前的单元格值

javascript - Handsontable Select2 动态选项

javascript/Jquery 代码组织

Javascript 预加载器不等待图像

javascript - 如何从两个选择选项中过滤文本/div?

mysql - 无法在 Excel for Mac 2016 中加载 macOS Connector/MySQL ODBC 驱动程序

javascript - 如果 css 有样式,jquery addClass 到元素

javascript - Handsontable - 文本在数字单元格上对齐