0

2ページあります。最初のページで、ユーザーはいくつかのフィルターを選択し、検索ボタンを押してから、ユーザーは 2 番目のページに移動します。2 ページ目にグリッドが表示され、そこでいくつかのタスクを実行します。

ユーザーは、ブラウザの戻るボタンを使用せずに、ワンクリックで最初のページに戻る必要があります。ユーザーはポストバックが発生する 2 番目のページでいくつかのタスクを実行するため、ユーザーはブラウザーの [戻る] ボタンを 1 回クリックしても最初のページに移動できません。

ユーザーは、最初のページの状態を、フィルターを選択して検索を押したときと同じにする必要もあります。

どうすればこれを達成できますか?

4

2 に答える 2

0

これは、正確に戻るボタンが押されたわけではなく、あなたを助けるかもしれません.

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack) //check if the webpage is loaded for the first time.
        {
            ViewState["PreviousPage"] = 
        Request.UrlReferrer;//Saves the Previous page url in ViewState
        }
    }
    protected void btnBack_Click(object sender, EventArgs e)
    {
        if (ViewState["PreviousPage"] != null)  //Check if the ViewState 
                        //contains Previous page URL
        {
            Response.Redirect(ViewState["PreviousPage"].ToString());//Redirect to 
        //Previous page by retrieving the PreviousPage Url from ViewState.
        }
    }
于 2012-12-21T04:44:34.180 に答える
0

残念ながら、これには魔法のトリックはありません。リターン URL と、戻ってきたときにバックアップを設定する必要があるページの状態をプログラムで覚えておく必要があります。

この目的で UrlEncoded ReturnUrl パラメーターを含むクエリ文字列を目にすることは珍しくありません。Url で状態を復元するために必要なすべてのものを取得できた場合はRequest.QueryString["ReturnUrl"]、完了時にリダイレクトして元に戻すことができます。

クエリ文字列を回避したい場合は、フォームを投稿するか、必要なデータを現在のリクエストとは別の場所 (セッションなど) に保存して、後で取得する必要があります。

于 2012-12-21T04:31:49.857 に答える