2012-02-01 7 views
2

私は2つのasp.net Webフォームを持っています。最初はScriptManager、History、UpdatePanel、およびGridViewがあります。後者はScriptManager、UpdatePanel、およびTextBoxesです。ここでの前提は、アイテムを編集できる詳細フォームにリンクするリストです。ASP.NET AJAXを使用したWebフォーム:HyperLinkとLinkBut​​ton&Response.RedirectからGridView

編集ページ(必要なパラメータを含む)に設定されたURLでHyperLinkコントロールを使用すると、何かを変更して保存してから戻るボタンをクリックすると、オリジナルが表示されますリストは更新されません。リフレッシュするためにF5を押すと、変更が表示されます。

代わりに、GridView内でLinkBut​​tonを使用し、コードビハインドでそのLinkBut​​tonを処理して同じ編集ページ(同じパラメータを使用)にResponse.Redirectを実行する場合は、同じ変更を加えて保存してから戻るボタンをクリックすると、元のページのリストが自動的に更新され、変更内容が表示されます。

編集/保存が行われる詳細ページのコードは変更されません。最初に表示された方法だけが変更されます。

質問:Response.Redirectがバックボタンがクリックされたときにページをリフレッシュさせ、それを直接HyperLinkの方法で複製することができますか?私は、ポストバックの理由を見ないので、HyperLinkメソッドを使用することを好むでしょうが、ユーザーがそれをブラウズするときにGridViewをリフレッシュしたいと思います。

ありがとうございました。

+0

を私は、http-ヘッダを追加し、タグをキャッシュしているので、おそらくここではその件に関する専門家がいます。 – pseudocoder

答えて

2

LinkBut​​tonによってポストバックが発生します。レスポンスは、Response.Redirectによってサーバー側でトリガされたHTTP 302リダイレクトコマンドです。したがって、Webブラウザは古いバージョンのページをキャッシュしません。

ハイパーリンクコントロールは、単にクライアント側の詳細ページに移動する通常の<a>タグをレンダリングします。ブラウザは、ページが変更された可能性があると考える理由がないため、戻るボタンを押すとキャッシュされたバージョンが表示されます。

戻るボタンが使用されている場合にブラウザがページをキャッシュしないように指定する場合は、 はキャッシュ制御HTTPヘッダーを使用します。 W3C Link

詳細ページ(または変更を受け入れると自動的にリダイレクト)にリンクを張って、ユーザーがGridView/summaryページに戻るようにする必要があります。戻るボタン。

編集:

申し訳ありませんが、以前に提供されたヘッダの例では、Asp.netのためではなかったが、基本的にはこのような何かしたいと思う:

Response.AppendHeader("Cache-Control", "no-cache") 
+0

過去にリストを返すためのリンクを提供しました。ユーザーが戻るボタンを使用できるようにすることを主張すると、非常にすごく手早くなります。ページングなどの問題もあります。あなたの説明はすばらしかったです - ありがとう。 –

+0

@MartinRobinsキャッシュコントロールHTTPヘッダーを使用して、目的の効果を持つハイパーリンクコントロールを使用できるようにする方法についていくつかの詳細を追加しました。それがうまくいくかどうか私に教えてください。 – pseudocoder

+0

私はキャッシングパラメータのさまざまな組み合わせを試しました。(あなたの "Wicket"の私の解釈 - Response.Headers.Add(@ "Cache-Control"、@ "no-cache、max-age = 0、must-revalidate 、no-store ");)、そしてすべて役に立たない。私が得た最も近いものは、ブラウザがページが期限切れであったことを伝えていて、リフレッシュする必要がありました! –

関連する問題