在自动模式下关注网格中的新行

时间:2017-03-31 07:54:00

标签: javascript

当我在网格中插入新行时,我遇到了问题。焦点始终位于网格的左侧。 问题是,当我插入更多行时...页面返回,这对用户来说是不方便的。 我的想法是为每个新插入行设置一个焦点...最佳模式...将在新行的特定单元格中进行选项卡焦点(字段必需示例Qta)。

这是我在javascript中的代码:

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

事实上,功能"拼接"创建一个新行popolate,其中包含网格中文章的详细信息....这样就将焦点设置在第一个单元格的左上方

为了尝试测试,我尝试插入此代码:

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

我可以确认找到正确的行并启动它有效的效果......但我找不到将焦点设置在正确行中的解决方案。

你能帮帮我吗? visible problem description

1 个答案:

答案 0 :(得分:0)

您好,请添加解决我案例的代码:

//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”)。 对我来说,这个案子可以关闭

祝你好运