首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于箭头键的剑道网格导航

基于箭头键的剑道网格导航
EN

Stack Overflow用户
提问于 2018-03-20 10:24:19
回答 2查看 1.4K关注 0票数 0

我正在尝试使用箭头键在Kendo网格中启用导航。我见过一些例子,其中箭头键只用于在可编辑的单元格之间导航。我的kendo网格中有50+列,其中20+单元格是可编辑的。我已经在数据库中创建了一个按键事件,它只对可编辑的单元格很好地工作。如果移动到不可编辑的单元格,则按下事件不起作用。

电流工作逻辑:

左右箭头键仅在可编辑单元格内工作。一旦我们到达不可编辑的细胞,它就不工作了。

理想工作逻辑

当我们按箭头键(如果单元格是可编辑的)时,它应该进入编辑模式;如果单元格不可编辑,焦点应该保持不变;当我们按左/右键时,光标应该移动到prev/next单元格。

我创建了一个telerik dojo

UPDATE这个Dojo按预期在IE中工作。但在铬合金中,它不起作用。基本上,Right arrow key应该像TAB键那样工作,Left Arrow key应该像SHIFT+TAB那样工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-03 07:21:52

最后,我们可以通过为单元格提供tabIndex来解决这个问题。基本问题是TRTD不会触发按键事件。在为TD设置TABINDEX之后,我们按下事件将被触发,其余的进程将继续进行。我已经更新了Telerik Dojo

注意:我们已经删除了用于数字输入的旋转器,因此当向上/向下箭头按下时,不会更改值。

票数 0
EN

Stack Overflow用户

发布于 2018-03-24 23:33:37

尽管这并不是特别推荐的,但是当"tabing“时跳过不可编辑的单元格如何?

您将绑定网格中表上的keydown事件。它可以调用这样的函数:

代码语言:javascript
运行
复制
function onGridKeydown(e){
  if (e.keyCode === kendo.keys.TAB) {
    var grid = $(this).closest("[data-role=grid]").data("kendoGrid");
    var current = grid.current();
    if (!current.hasClass("editable-cell")) {
      var nextCell = current.nextAll(".editable-cell");
      if (!nextCell[0]) {
        //search the next row
        var nextRow = current.parent().next();
        var nextCell = current.parent().next().children(".editable-cell:first"); 
      } 
      grid.current(nextCell);
      grid.editCell(nextCell[0])
    }
  } 
};

当然,这只解决了寻找下一个所需单元格的部分问题。这个答案可能会引导您走向正确的方向(抱歉,没有使用您的dojo项目)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49381688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档