我有两页。在第一页用户选择一些过滤器并按搜索按钮,然后用户导航到第二页。在第二页上,用户将看到一个网格,他将在那里执行一些任务。浏览器后退按钮页面状态的自定义按钮点击
现在用户需要返回到第一页,只需一次点击就无需使用浏览器后退按钮。由于用户在第二页中执行一些任务,该第二页发生后发生,用户不能从一次点击浏览器后退按钮进入第一页。
用户还需要第一页的状态与他选择过滤器并按搜索时的状态相同。
我该如何做到这一点?
我有两页。在第一页用户选择一些过滤器并按搜索按钮,然后用户导航到第二页。在第二页上,用户将看到一个网格,他将在那里执行一些任务。浏览器后退按钮页面状态的自定义按钮点击
现在用户需要返回到第一页,只需一次点击就无需使用浏览器后退按钮。由于用户在第二页中执行一些任务,该第二页发生后发生,用户不能从一次点击浏览器后退按钮进入第一页。
用户还需要第一页的状态与他选择过滤器并按搜索时的状态相同。
我该如何做到这一点?
不幸的是,这没有什么魔术。您必须以编程方式记住返回URL以及返回时需要设置的任何页面状态。
出于此目的,查看包含UrlEncoded ReturnUrl参数的查询字符串并不罕见。如果您可以设法获得恢复Url状态所需的一切,那么您可以在完成后简单地重定向回Request.QueryString["ReturnUrl"]
。
如果您想要避开查询字符串,您需要先形成文章,或者将需要的数据存储在与当前请求分开的地方(如会话)以供日后检索。
这可能会帮助你,而不是完全按下后退按钮。
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.
}
}
不保持上一页的状态,你只是重定向到前一页,在这种情况下,当页面加载它将松散所有选择的过滤器 – Zinov