使用键盘激活dojo dgrid编辑器



用鼠标事件触发dojo dgrid的编辑模式很容易。以下是我所做的:

editor({field: "checkNumber",label: "Check Number",editOn: "click"})

但是,我想使用键盘触发编辑模式。具体来说,我想进入编辑模式,当我按下空格键。我如何以编程方式将单元格设置为"编辑模式"或"非编辑模式"?

当您向网格添加一个或多个editor列时,它使edit方法在网格实例上可用,您可以使用单元格元素(或事件引用一个)调用该方法,以编程方式将焦点转移到单元格的编辑器上。

同时,Keyboard mixin有一个addKeyHandler方法,您可以使用它来添加处理程序来响应特定键的keydown事件。

结合这两件事,您可以轻松地执行以下操作,使网格在按空格时编辑聚焦的单元格:

grid.addKeyHandler(32, function (event) {
    grid.edit(event);
});

(edit应该对非编辑器列中的单元格没有影响。)

另一种解决方案可能是创建一个扩展事件,触发鼠标单击或空格键,并将其传递给editOn而不是'click'

var grdobj = dijit.byId("...");    
var editCell=grdobj.cell(rowNo, "checkNumber");
grdobj.edit(editCell);

可以使用rightleftupdown函数来代替cell函数。

希望对你有帮助。

最新更新