用鼠标事件触发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);
可以使用right
、left
、up
或down
函数来代替cell
函数。
希望对你有帮助。