在网格中插入新行时出现问题。焦点始终在网格的左上方。
问题是当我插入更多行时...页面返回上,这对用户来说很不方便。
我的想法是为每个新的插入行设置焦点,最好的模式是在新行的特定单元格中进行制表符焦点(必填字段Example Qta)。

这是我在javascript中的代码:

   self.fromModel(data, self.CodArticolo, self.addingFromOrdineFornitore);
         if (model.details.indexOf(self) == -1) {
             model.details.splice(model.details.length - 1, 0, self);


在函数“ splice”中创建一个新行,并在网格中填充文章的详细信息....,这会将焦点设置在第一个单元格的左上方

为了进行测试,我尝试插入以下代码:

  var data = $("#Movimenti").data("kendoGrid").dataSource.data();
      for (var i = 0; i < data.length; i++) {
           var dataItem = data[i];
                  if (i == model.details.length - 2) {
$("#Movimenti").data("kendoGrid").tbody.find("tr[data-uid=" + dataItem.uid + "]").effect("highlight", { color: "#f35800" }, 3000);
                                   }
                            }


而且我可以确认找到正确的行并启动它起作用的效果...但是我没有找到在正确的行中设置焦点的解决方案。

你能帮助我吗?
javascript - 在自动模式下专注于网格中的新行-LMLPHP

最佳答案

嗨,添加以下代码来解决我的问题:

//Setto il focus all'interno dell'ultima riga inserita
                        var data = $("#Movimenti").data("kendoGrid").dataSource.data();
                        for (var i = 0; i < data.length; i++) {
                            var dataItem = data[i];
                            if (i == model.details.length - 2) {
                                var grid = $("#Movimenti").data("kendoGrid");
                                //var firstCell = grid.tbody.find("tr[data-uid=" + dataItem.uid + "] td:first");
                                var cellName = "Qta";
                                var cellIndex_1 = grid.element.find("th[data-field = '" + cellName + "']").index();
                                var focusCell = grid.tbody.find("tr[data-uid=" + dataItem.uid + "] td:eq(" + cellIndex_1 + ")");

                                grid.current(focusCell);
                                focusCell.focus();
                                focusCell.trigger("click");


在这种模式下,我设置焦点和/或编辑特定的单元格(“ Qta”)。
对我来说,这种情况可以关闭

最好的祝福

10-05 17:45