HandsonTable setDataAtCell无法正常工作

问题描述 投票:3回答:1

我们正在尝试使用HandsonTable构建类似Excel的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;

            }


            });
jquery excel handsontable
1个回答
0
投票

来自wiki

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

为单元格设置新值。要一次更改多个单元格,请将格式为[[row, col, value], ...]的更改数组作为唯一参数。 Col是可见列的索引(请注意,如果列重新排序,将使用当前顺序)

你必须下载一个破碎的版本,就像我没有方法setDataAtRowProp和setDataAtCell接受该方法的参数一样。

© www.soinside.com 2019 - 2024. All rights reserved.