6

ASP.NET MVC 4 Web サイト jQuery 1.7.2 で jqGrid 4.3.2 を使用しています。アプリケーションには、jqGrid が使用される場所がいくつかあります。現在の私の一般的な設定は、すべての編集がインライン ナビゲーションと編集を使用してローカルで (loadonce: trueおよびclientArray) 行われ、すべてのグリッド データが AJAX 呼び出しを介してフォーム送信時にサーバーにポストされることです。行の編集と、それらがコミットされるイベントで問題が発生しました。ここでサイト (およびソース、進行中の作業全体、いいもの) を表示できます。行を追加または編集してからページの別の場所をクリックすると、行の編集は保存されません。行を保存するには、行の編集中にどこかで Enter キーを押す必要があります。

これについては、この質問で少し触れましたが、 Olegが親切にも答えてくれました。行がフォーカスを失ったときのように、Enter キーが押されたとき以外に行の編集をコミットする方法はありますか?

4

2 に答える 2

8

あなたができることは次のとおりです。

  1. まず、inlineNavrestoreAfterSelect: falseのオプションを設定する必要があります。オプションは文書化されていないようですが、ソースコードで確認できます。設定なしでを使用して呼び出します(ここを参照)。inlineNavbeforeSelectRowrestoreRow
  2. の内部(回答onSelectRowのコードを参照)または内部の前の編集行の保存を実装します。保存する必要のある最後の編集行は、の内部で値がまだ変更されていないため、オプションから取得できる最後に選択された行のみである可能性があるため、おそらくの使用はさらに簡単になります。beforeSelectRowbeforeSelectRowselrowbeforeSelectRow
于 2012-06-13T20:07:37.520 に答える
1

2016 年にこれを読んでいる人にとっては、この機能は現在 jqGrid に組み込まれています。https://github.com/tonytomov/jqGrid/issues/785を参照してください。これを書いている時点で jqGrid 5.1 が出ていたので、この機能はバージョン 5.2 以降で利用できると思います。または、GitHub から最新のコードを入手してください。

これを使用するには、jqGrid で次のプロパティを設定するだけです。

...
restoreAfterSelect: false,
saveAfterSelect: true,
...

独自のソリューションを実装する必要はなくなりました。

于 2016-05-17T03:09:42.340 に答える