我正在尝试使用箭头键在Kendo网格中启用导航。我见过一些例子,其中箭头键只用于在可编辑的单元格之间导航。我的kendo网格中有50+列,其中20+单元格是可编辑的。我已经在数据库中创建了一个按键事件,它只对可编辑的单元格很好地工作。如果移动到不可编辑的单元格,则按下事件不起作用。
电流工作逻辑:
左右箭头键仅在可编辑单元格内工作。一旦我们到达不可编辑的细胞,它就不工作了。
理想工作逻辑
当我们按箭头键(如果单元格是可编辑的)时,它应该进入编辑模式;如果单元格不可编辑,焦点应该保持不变;当我们按左/右键时,光标应该移动到prev/next单元格。
我创建了一个telerik dojo。
UPDATE这个Dojo按预期在IE中工作。但在铬合金中,它不起作用。基本上,Right arrow key
应该像TAB
键那样工作,Left Arrow key
应该像SHIFT+TAB
那样工作。
发布于 2018-04-02 23:21:52
最后,我们可以通过为单元格提供tabIndex
来解决这个问题。基本问题是TR
和TD
不会触发按键事件。在为TD设置TABINDEX
之后,我们按下事件将被触发,其余的进程将继续进行。我已经更新了Telerik Dojo
注意:我们已经删除了用于数字输入的旋转器,因此当向上/向下箭头按下时,不会更改值。
发布于 2018-03-24 15:33:37
尽管这并不是特别推荐的,但是当"tabing“时跳过不可编辑的单元格如何?
您将绑定网格中表上的keydown事件。它可以调用这样的函数:
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项目)。
https://stackoverflow.com/questions/49381688
复制相似问题