单击自定义按钮时的浏览器返回按钮页面状态

时间:2012-12-21 04:10:30

标签: c# asp.net back-button page-state

我有两页。在第一页上,用户选择一些过滤器并按搜索按钮,然后用户导航到第二页。在第二页上,用户将看到一个网格,他将在那里执行一些任务。

现在,用户需要使用浏览器后退按钮一次返回第一页。由于用户在第二页中执行某些任务,发生了回发,用户无法通过浏览器返回按钮一次点击进入第一页。

用户还需要第一页的状态与选择过滤器时的状态相同,然后按搜索。

我怎样才能实现这个目标?

2 个答案:

答案 0 :(得分:0)

不幸的是,这没有神奇的伎俩。您必须以编程方式记住返回URL以及返回时需要重新设置的任何页面状态。

为此目的,查看包含UrlEncoded ReturnUrl参数的查询字符串并不罕见。如果您可以设法获取在Url中恢复状态所需的所有内容,那么您只需在完成后重定向回Request.QueryString["ReturnUrl"]即可。

如果你想避免使用查询字符串,你需要形成一个查询字符串,或者将所需的数据存储在与当前请求不同的地方(如会话),以便以后检索。

答案 1 :(得分: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.
        }
    }