[英]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.