Получить наибольшее число или следующий доступный номер в списке - PullRequest
1 голос
/ 20 марта 2019

У меня возникла проблема с назначением следующего значения строки счета.

Я написал фрагмент javascript, чтобы получить следующее значение, но почему-то отсутствует следующее доступное значение и все еще выбирается самое высокое значение.

Мне нужно наибольшее или следующее доступное число, LineNo - это то, что мне нужно, наивысшее или следующее число.

код

onGridBeforeEditLines: function (e) {//grid 2
    var event123 = e;
    var lineNo = 0;
    var grid = $("#gridLines").data("kendoGrid");
    $(grid.dataSource.data()).each(function (i, v) {
        if (v != null) {
            if (v.LineNo >= lineNo)
                lineNo = v.LineNo; //Getting the highest value    
        }
    });
    lineNo++;
    grid = $("#gridContracts").data("kendoGrid");
    if (e.model.PaymentPeriodID == 0) {           
        var selectedItem = grid.dataItem(grid.select());
        e.model.PaymentPeriodID = selectedItem.ID;
        e.model.LineNo = lineNo; //setting the value to the grid
    }        
},

Изображения

Кажется, что он отлично работает для получения наибольшего числа и добавления к нему 1. Наибольшее значение равно 3, поэтому 4 - это следующий доступный номер строки. Correct

Кажется, он не работает при поиске следующего доступного номера. Я удалил строку № 2, так что 2 должна быть следующей доступной опцией, но она по-прежнему получает наибольшее значение и добавляет 1 к ней. Incorrect

Заранее спасибо за помощь.

1 Ответ

1 голос
/ 20 марта 2019
if (v.LineNo > lineNo+1) { // then we skipped a space
  // next open value is lineNo+1
  lineNo = lineNo+1;
  return false; // break loop
} else if (v.LineNo == lineNo+1) {
  lineNo = v.LineNo; //Getting the next sequential value , keep looping
} else {
  // lineNo should stay the same
}
...