Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 剑道网格-如何通过上/下键盘键使整行选择可导航?_Javascript_Kendo Ui_Kendo Grid_Keyboard Events - Fatal编程技术网

Javascript 剑道网格-如何通过上/下键盘键使整行选择可导航?

Javascript 剑道网格-如何通过上/下键盘键使整行选择可导航?,javascript,kendo-ui,kendo-grid,keyboard-events,Javascript,Kendo Ui,Kendo Grid,Keyboard Events,在鼠标单击选定的行后,我有以下带有彩色行的网格 我想添加相同的功能,如果用户将在事件中使用键盘上的上下行,实际选定的行将通过键盘传递,如下面的更改功能中所示 我怎样才能用剑道做到 change: function (e) { var selectedRows = this.select(); var selectedDataItems = []; for (var i = 0; i < selectedR

在鼠标单击选定的行后,我有以下带有彩色行的网格

我想添加相同的功能,如果用户将在事件中使用键盘上的上下行,实际选定的行将通过键盘传递,如下面的更改功能中所示

我怎样才能用剑道做到

change: function (e) {
              var selectedRows = this.select();
              var selectedDataItems = [];
              for (var i = 0; i < selectedRows.length; i++) {
                  var dataItem = this.dataItem(selectedRows[i]);
                  selectedDataItems.push(dataItem);
              }
              console.log(selectedDataItems);
              $scope.setDetailToScope(selectedDataItems, "row_select");
          },

“向上/向下”按钮已被识别,但我无法获取下一个选定行并将其着色。

您只需启用剑道
可导航功能即可:

$("#grid").kendoGrid({
    ...
    selectable: "row",
    navigatable: true,
    ...
});
类似于:

编辑: 要在没有重影突出显示的情况下导航,应手动处理此问题:

  var data = $("#grid").data('kendoGrid');
  var arrows = [38, 40];
  data.table.on("keydown", function (e) {
    if (arrows.indexOf(e.keyCode) >= 0) {
        setTimeout(function () {
            data.select($("#grid_active_cell").closest("tr"));
        },1);
    }
  }

您必须设置网格
可选
网格选择模式
设置
单个

比如:

您可以在网格事件中使用
导航
环境:

.Events(evt=>evt.Navigate(“导航”)

在js函数中:

function navigate(e) {
    var grid = e.sender;
    grid.select(grid.tbody.find(e.element.parent()));
}

谢谢,我已经在网格配置中设置了您提到的值,但是它只对单元格有效,而不是对整行有效,并且不会触发更改功能。此功能的标准行为要求在选择单元格后确认使用空格。之后,整行应该高亮显示。是否可以覆盖此默认行为?结果相同。请发布JSFIDLE代码段好吗?JSFIDLE抛出错误UncaughtTypeError:$(…)。kendoGrid不是函数
.Selectable(s=> s.Mode(GridSelectionMode.Single))
function navigate(e) {
    var grid = e.sender;
    grid.select(grid.tbody.find(e.element.parent()));
}