1

EscキーとEnterキーを使用してインライン編集を使用したいのですが、inlineNavメソッドを使用しています。私はすでにメソッドを設定keys: trueしてeditRowおり、キーは機能しています。「行の追加」ボタンを使用している間、キーは初めてフォークしません。この操作をマウスでキャンセルする必要があり、再度行を追加しようとすると、キーは正常に機能します。これをデバッグする方法がわかりません。jqGrid v. 4.4.4 です。

$("myGrid").jqGrid(finalConfig)
  .navGrid(gridToolbar).inlineNav(gridToolbar, {
     editParams: { keys: true }
  }
);
4

1 に答える 1

2

インライン編集の一般的な設定を定義したい場合は、 を使用することをお勧めします$.jgrid.inlineEdit。例えば

$.extend($.jgrid.inlineEdit, { keys: true });

その場合、インライン編集のあらゆる形式Enterでキーが機能します。フォーマッタごとにアクティブ化されたインライン編集の場合: 「アクション」は、 によって追加された [追加] および [編集] ボタンと同じように機能します。inlineNav

inlineNavまたは、次の方法で「行の追加」ボタンのオプションに特別な指定をする必要があります

$("#myGrid").jqGrid("inlineNav", "#pager", {
    editParams: { keys: true },
    addParams: { addRowParams: { keys: true } }
});

通常、1 つのオブジェクトですべてのインライン編集オプションを定義し、同じオプション オブジェクトを 2 回使用します。

var editingOptions = { keys: true };

$("#myGrid").jqGrid("inlineNav", "#pager", {
    editParams: editingOptions,
    addParams: { addRowParams: editingOptions }
});

その他のコード例については、回答を参照してください。

UPDATED :最初に追加操作中に使用した理由を見つけたと思いますが、後で作業しました。その理由は、投稿したばかりのバグ レポートに記載されているバグです。の修正版を試すことができます (ここで入手できます)。その理由はkeys: falsekeys: falsejquery.jqGrid.src.js

  1. inlineNavバグが 1 つあります。「追加」操作をキャンセルしても、常にeditParams「キャンセル」イベント ハンドラー (行を参照) 内で使用されます。そのため、メソッドはパラメーターとしてrestoreRow呼び出されました。editParams
  2. 次のバグは、単に使用するのではなく、行restoreRow 変更されることです。 $.jgrid.inlineEditバグを修正するには、行を変更する必要があります
o = $.extend(true, $.jgrid.inlineEdit, o );

o = $.extend(true, {}, $.jgrid.inlineEdit, o);
于 2013-03-28T14:49:51.460 に答える