Заполняйте ячейку значением только в том случае, если выбрана опция поля со списком - PullRequest
0 голосов
/ 05 мая 2019

Я занимаюсь разработкой веб-приложения на dhtmlx. У меня есть сетка, которая имеет 3 столбца. Первый - комбинированный, а остальные 2 редактируемые. все строки пустые в начале. пользователь должен выбрать один вариант из списка и ввести сумму на одном из двух других. когда он набирает сумму с одного, другой отключается, и наоборот. когда он нажимает на следующую строку в тот момент, когда он выбирает опцию в комбо, я хочу, чтобы количество последней ячейки, доступной для редактирования, заполняло ячейку второго столбца новой строки. например, если у меня есть в (1,1) 100, я хочу, чтобы после выбора комбо в строке 2 (2,2) также было заполнено 100. Я попробовал этот код, но он заполняет (2,2), только когда я нажимаю и редактирую (1,1) во второй раз. Что я делаю не так?

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;
                    }
                });

ячейки со значением должны быть доступны для редактирования в конце.

1 Ответ

0 голосов
/ 10 мая 2019

Если я вас правильно понял, вы можете попытаться сделать что-то вроде: http://snippet.dhtmlx.com/b32986bf1

...