0

我正在使用dojox.grid.EnhancedGrid具有可编辑单元格的单元格。SPACEBAR触发 编辑模式(我猜这是一种不错的方法)。但是,如果我以编程方式触发编辑模式(通过相邻单元格中的链接)或双击并开始输入一些文本,例如"This value is good",只要我点击SPACEBAR(在"This"之后)网格尝试再次触发编辑,它删除了我到目前为止输入的内容。

有人知道如何解决这个问题吗?这真的很烦人,因为它仅在使用事件以外的编辑模式下onKeyDown使用其他方式进入单元格时发生(即,如果我聚焦单元格并按下ENTER单元格进入编辑模式并且允许空格;如果我双击单元格并输入我第一次按下编辑模式SPACEBAR时编辑模式搞砸了)。

谢谢你的回答。

4

2 回答 2

2

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

于 2012-11-28T12:48:47.440 回答
0

似乎我能够解决这个问题。这篇文章对我有帮助: 动态控制 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 中的代码对网格属性有一些魔力并解决了这个问题。如果有人有其他解决方案 - 请分享!

于 2012-11-30T13:08:23.413 回答