2012-06-13 43 views
6

私はjVGrid 4.3.2のASP.NET MVC 4ウェブサイトjQuery 1.7.2で作業しています。 jqGridが使用されるアプリケーションにはいくつかの場所があります。私の一般的な設定は、すべての編集がインラインナビゲーションと編集でローカルで行われ(loadonce: trueclientArray)、すべてのグリッドデータはAJAX呼び出しを介してフォーム送信時にサーバーに送信されます。私は行の編集とそれらがコミットされたイベントでいくつかの問題に遭遇しました。あなたはサイト(とソース、進行中の総作業、素敵です)hereを見ることができます。行を追加または編集してページ上の他の場所をクリックすると、行の編集は保存されません。ユーザは、行を保存するために、行編集中に入力キーを押す必要があります。jqGridはインライン行の編集を保存しません

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

答えて

8

は次のとおりです。

  1. あなたがinlineNavrestoreAfterSelect: falseオプションを設定する必要がまず第一。このオプションは文書化されていませんが、the source codeに表示されています。設定なしでinlineNavrestoreRowhereを参照)を呼び出すためにbeforeSelectRowを使用します。
  2. onSelectRowthe answerのコードを参照)またはbeforeSelectRowの内部に、前の編集行を保存することを実装します。おそらくbeforeSelectRowの内部で値が変更されていないため、selrowオプションから取得できる最後に選択した行のみを保存する必要があるため、beforeSelectRowの使用はさらに簡単になります。
+0

完璧!ありがとう、オレグ。それはしばらく私を悩ませている。 –

+0

@AJ .:ようこそ! – Oleg

+0

オレグは2年以上経ちましたが、あなたの答えはまだ助けてくれました。 「restoreAfterSelect:false」をキーにしていました。ありがとう –

1

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

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

独自のソリューションを実装する必要はもはやあり:

単にあなたのjqGridの次のプロパティを設定していない、それを使用します。

関連する問題