Dojox EnhancedGrid中的空格键

时间:2012-07-24 15:56:26

标签: javascript dojo dojox.grid

我正在使用具有可编辑单元格的dojox.grid.EnhancedGrid SPACEBAR 触发 编辑模式 (这是一种 ok-ish 方法,我猜)。但是,如果我以编程方式(通过相邻单元格中的链接)或双击触发编辑模式,我开始键入一些文本,如“此值很好” ,一旦我点击空格键(在“这个”之后),网格会再次尝试触发编辑并删除我到目前为止输入的内容。

有人知道如何解决这个问题吗?它真的很烦人,因为只有在{strong> 编辑模式 而不是onKeyDown事件时使用其他方式进入单元格时才会发生这种情况(即如果我关注单元格并按下< kbd> ENTER 单元格进入编辑模式并允许空格;如果我双击单元格并进入编辑模式我第一次按空格键编辑模式搞砸了。)

感谢您的回答。

2 个答案:

答案 0 :(得分:2)

我有同样的问题。但我意识到,在我的情况下,只有当singleClickEdit属性设置为false时,问题才有效。换句话说,如果singleClickEdit:true - 可以在可编辑字段中输入空格

答案 1 :(得分:0)

似乎我能够解决这个问题。这篇文章帮助我: Dynamically control edit mode of dojo DataGrid column

这是最终解决方案:

var customOnEditActivate = function(e){
 var event;
 if(this._click.length > 1 && has('ie')){
  event = this._click[1];
 }else if(this._click.length > 1 && this._click[0].rowIndex != this._click[1].rowIndex){
  event = this._click[0];
 }else{
  event = e;
 }
 this.focus.setFocusCell(event.cell, event.rowIndex);
 this.onRowClick(event);
 this.edit.setEditCell(event.cell, event.rowIndex);
 this.onRowDblClick(e);
};

wordsGrid = new dojox.grid.EnhancedGrid({
                query : ...,
                store : ...,
                singleClickEdit: false,
                selectionMode:"single",
....
}, container);
dojo.connect(wordsGrid, "onCellDblClick", customOnEditActivate);

因此即使没有连接到onCellDblClick也会触发编辑事件。但似乎customOnEditActivate中的代码对网格属性做了一些魔术并修复了这个问题。如果有人有其他解决方案 - 请分享!