繁体   English   中英

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

[英]Browser back button page state on a custom button click

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

现在,用户需要单击一次返回到第一页,而无需使用浏览器的后退按钮。 由于用户在第二页中执行某些任务,而第二页会发生回发,因此用户无法通过单击浏览器“后退”按钮来进入第一页。

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

我怎样才能做到这一点?

不幸的是,这没有魔术。 您必须以编程方式记住返回URL,以及返回时需要设置的所有页面状态。

为此,通常会看到一个包含UrlEncoded ReturnUrl参数的查询字符串。 如果您可以设法获取恢复Url状态所需的所有内容,则只需在完成后直接重定向回Request.QueryString["ReturnUrl"]

如果您想避免使用查询字符串,则要么将其形成表单,要么将所需的数据存储在与当前请求(例如Session)不同的位置,以便以后检索。

这可能对您有帮助,而不是完全按下了后退按钮。

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.
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM