1

2 つの編集可能な slickgrid インスタンスをデータ入力フォームとして使用しようとしています。最初のグリッドの最後のセルから 2 番目のグリッドの最初のセルにタブ移動できるようにしたいのですが、次のようにはなりません。仕事に。私は何が欠けていますか?

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

実際には、タブを 3 回押すと機能しますが、キーを 1 回押すだけで機能するようにしたいと考えています。

最初のグリッドには行が 1 つしかないことに注意してください。そのため、行をテストする必要はありません。

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 に答える