我有两页。在第一页上,用户选择一些过滤器并按搜索按钮,然后用户导航到第二页。在第二页上,用户将看到一个网格,他将在那里执行一些任务。
现在,用户需要使用浏览器后退按钮一次返回第一页。由于用户在第二页中执行某些任务,发生了回发,用户无法通过浏览器返回按钮一次点击进入第一页。
用户还需要第一页的状态与选择过滤器时的状态相同,然后按搜索。
我怎样才能实现这个目标?
答案 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.
}
}