首页 > 解决方案 > Fill a cell with a value only if combo box option is selected

问题描述

我正在 dhtmlx 上开发一个网络应用程序。我有一个有 3 列的网格。第一个是组合,另外两个是可编辑的。所有行一开始都是空白的。用户必须从组合中选择一个选项并在其他两个选项中输入一个金额。当他输入一个金额时,另一个被禁用,反之亦然。当他在组合上选择一个选项后单击下一行时,我希望最后一个可编辑单元格的数量填充新行第二列的单元格。例如,如果我有 (1,1) 100 我希望在第 2 行的组合选择之后 (2,2) 也填充 100。我尝试了此代码,但仅在我第二次单击并编辑(1,1)时才填充(2,2)。我究竟做错了什么?

myGrid.attachEvent("onEditCell", function (stage, rId, cInd, nValue, oValue) {
                    if (stage === 2 && myGrid.cells(rId, 1).getValue() !== "0" && myGrid.cells(rId, 0).getValue() !== "") {
                        var x = myGrid.cells(rId, 1).getValue();
                        myGrid.cellById(rId, 2).setDisabled(true);
                        if (myGrid.cells(rId + 1, 0).getValue() !== "") {
                            myGrid.cells(rId + 1, 2).setValue(x);
                            myGrid.cellById(rId + 1, 1).setDisabled(true);
                            return true;
                        }
                        return true;
                    } else if (stage === 2 && myGrid.cells(rId, 2).getValue() !== "0" && myGrid.cells(rId, 0).getValue() !== "") {
                        var x = myGrid.cells(rId, 2).getValue();
                        myGrid.cellById(rId, 1).setDisabled(true);
                        if (myGrid.cells(rId + 1, 0).getValue() !== "") {
                            myGrid.cells(rId + 1, 1).setValue(x);
                            myGrid.cellById(rId + 1, 2).setDisabled(true);
                            return true;
                        }
                        return true;
                    }
                });

具有值的单元格最后必须都是可编辑的。

标签: javascriptgriddhtmlxdatagridcomboboxcolumn

解决方案


如果我说对了,您可以尝试执行以下操作:http: //snippet.dhtmlx.com/b32986bf1


推荐阅读