使用键盘激活dojo dgrid编辑器

使用键盘激活dojo dgrid编辑器,dojo,keyboard,editor,dgrid,Dojo,Keyboard,Editor,Dgrid,使用鼠标事件在dojo dgrid中触发编辑模式很容易。以下是我所做的: editor({field: "checkNumber",label: "Check Number",editOn: "click"}) 但是,我想使用键盘触发编辑模式。具体来说,我想在按下空格键时进入编辑模式。如何以编程方式将单元格设置为“编辑模式”或“非编辑模式”?当您向网格添加一个或多个编辑器列时,它使网格实例上的编辑方法可用,您可以使用单元格元素(或引用单元格的事件)调用该方法,以编程方式将焦点转移到单元格的编辑

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

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

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

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

同时,
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);
您可以使用
向上
向下
功能来代替
单元格
功能

希望有帮助