1

我正在尝试使用两个可编辑的 slickgrid 实例作为数据输入表单,并且我希望能够从第一个网格的最后一个单元格切换到第二个网格的第一个单元格,但以下内容似乎没有去工作。我错过了什么?

  firstGrid.onKeyDown.subscribe(function(event) {
    if (event.keyCode === 9 && event.shiftKey === false) {
      if (firstGrid.getActiveCell().cell === lastCol) {
        firstGrid.commitCurrentEdit();
        secondGrid.gotoCell(0, 0, true);
      }
    }
  });

实际上,如果我按三下标签,它就可以工作,但我真的希望它可以通过一个按键来工作。

请注意,第一个网格只有一行,这就是我不必测试该行的原因。

4

1 回答 1

3

首先,commitCurrentEdit不是网格上的方法,事实证明没有必要。需要的是通过调用(jquery)事件对象的stopImmediatePropagation方法来防止(网格的)其他处理程序进行干扰:

firstGrid.onKeyDown.subscribe(function(event) {
  if (event.keyCode === 9 && event.shiftKey === false) {
    if (firstGrid.getActiveCell().cell === lastCol) {
      secondGrid.gotoCell(0, 0, true);
      event.stopImmediatePropagation();
    }
  }
});
于 2013-04-03T20:32:58.363 回答