2011-06-20 11 views
4

私は単にRESPONSE.REDIRECTの前のページへの直接指示はありますか?

など、すべてのフィルタをします着信要求を監視するために、受信トレイで、Webアプリケーション(ヘルプデスクチケットシステム)を持っており、ユーザーが要求者名に基づいて要求を手配するいくつかのフィルタボタンを作った、作成日同じページを呼び出しますが、クエリ文字列にコードを追加します。 例を、ユーザがここで[日付で並べ替え]と書かれたボタンを押すと、そのボタンの背後にあるコードは、次のとおり

Response.Redirect("Inbox.aspx?Filter=DATE") 

別のボタンが同様に実行される:

Response.Redirect("Inbox.aspx?Filter=NAME") 

のGridViewを移入しますいくつかの行(着信要求の要約)とユーザーの設定で並べ替えられます。ユーザーは着信要求のいずれかの完全な詳細を表示することを決定した後

、任意の行をクリックすると、次に、ユーザは、いくつかを使用して要求を編集/更新する機会が与えられている

Response.Redirect("Details.aspx?REQ_ID=123") 
'where 123 is the request number the user clicked 

につながりますボタンは、Details.aspxページに表示されますが、すべてのボタンは、Details.aspxページを表示する前にユーザーが持っていたフィルタの設定で受信者に返す必要があります。言い換えれば

、「ユーザーがDetails.aspxページ

Sub btnUpdateRequest() Handles btnUpdateRequest.Click 

    'My code here for the button action (update/edit/send/cancel) 
    ' once the job is done, return the user to the Inbox.aspx page with the same filter 

    Response.Redirect("javascript:History.Back()") 
    End Sub 

上のボタンを押したしかし、私はResponse.RedirectをはJavaScriptを受け入れないことを知っていたら、私は次のことをやりたい、と私はドンコードビハインドファイルとASPXファイル(OnClientClick属性を追加する)との間でコードを分割したいと思っています。これは、VB命令とユーザーのリダイレクトを両方とも実行する必要があるためです。

答えて

5

リファラーURLにリダイレクトできます。最初に利用可能かどうかを確認する必要があります。

if (Request.UrlReferrer.AbsoluteUri != null) { 
    Response.Redirect(Request.UrlReferrer.AbsoluteUri); 
} 
+0

これは私が探していたものですが、C#で書かれていますが、それは大きな問題ではありません。非常にありがとう@ジョン – Ahmad

0

以下はお役に立ちます。このコードをボタン内に配置します。

Page.RegisterStartupScript("goBack", "<script type=""text/javascript"" language=""javascript"">window.history.go(-1);</script>") 
+0

非常に素早い返信@Saurabhよりもずっとあなたです。私はそれを試みますが、これはリダイレクトプロセスをすぐにトリガするか、イベントが後で起こることを許可しますか? – Ahmad

+0

後で。 – Saurabh

+0

@Jonが私が探していたコードを掲載しました。とにかくありがとうございました。リクエストを処理した直後にユーザーをリダイレクトする必要があるため、スクリプトを追加してから別の時間にアクティブ化すると、あまり役に立ちません。 – Ahmad

0

代わりのPage.あなたはこれに似ClientScript.、使用することができます:私の提案で.go(-2)は(レポートビューアー)が必要です

ClientScript.RegisterStartupScript(
    GetType(String), 
    "goBack", 
    "<script type=""text/javascript"" language=""javascript"">window.history.go(-2);</script>") 

を。

関連する問題