Dojox EnhancedGrid中的空格键

SPACEBAR in Dojox EnhancedGrid

本文关键字:空格键 EnhancedGrid Dojox      更新时间:2024-02-10

我使用的是一个具有可编辑单元格的dojox.grid.EnhancedGridSPACEBAR触发编辑模式(我想这是一种的方法)。但是,如果我以程序方式(通过相邻单元格中的链接)或双击触发编辑模式,并开始键入一些文本,如"This value is good",则我一点击空格键(在"This"之后),网格就会尝试再次触发编辑,并删除我迄今为止输入的内容。

有人知道怎么解决这个问题吗?这真的很烦人,因为只有在onKeyDown事件之外的编辑模式下使用其他方式进入单元格时才会发生这种情况(即,如果我聚焦单元格并按ENTER,则单元格将进入编辑模式,并且允许空格;如果我双击单元格并在第一次按空格键时进入编辑模式,则编辑模式会出错).

谢谢你的回答。

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

中输入空格

似乎我能够解决这个问题。这篇文章帮助我:动态控制dojo DataGrid列的编辑模式

这是一个最终的解决方案:

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中的代码似乎对网格属性起到了一些神奇的作用,并修复了这个问题。如果有人有其他解决方案,请分享!