0

subGridRowExpanded を使用して jqGrid サブグリッドがあります。グリッド行ごとに、サブグリッドには 7 行が含まれます。最初にグリッド行が展開されると、サブグリッドは ajax を使用して 7 行のデータを取得します。サブグリッド内の 7 行の 1 つを更新して [保存] をクリックすると、ajax を使用して 7 行すべてをサーバーに保存し、editRow を使用して 7 行をサブグリッドに保存します。

これが問題です。この subGrid を閉じて再度開くと、subGrid の 7 つの行は元のロードからのデータで埋められ、変更はありません。これを回避する唯一の方法は、ajax 呼び出しで cache:false を設定することです。

キャッシュをオフにしてサーバーに戻るのではなく、editRow (key : true) を使用して行を saveRow() に更新するときに、キャッシュを更新する方法はありますか?

ありがとう。

4

1 に答える 1

0

Webブラウザの「キャッシュを更新する」だけではできません。その代わりに、サーバーはキャッシュを管理する HTTP 応答ヘッダーに含める必要があります。すべての Ajax リクエストがサーバーから取得されるようにする場合は、サーバーの応答に含める必要があります。たとえば、実質的に常に次のヘッダーを含めます

Cache-Control: private, max-age=0

グリッドにデータを提供するサーバーの応答。答えは、そのようなヘッダーを ASP.NET で設定する方法を示しています。

ここでは、データのキャッシュに使用される HTTP ヘッダーについて詳しく読むことができます。回答以前に参照したものは、jqGrid および jQuery.ajax と組み合わせて興味深い詳細を提供します。

于 2013-04-30T16:08:42.293 に答える