在ASP.net中实现一个万能的“返回”按钮。

前台设计,尤其是管理功能的设计,允许用户后退是一个很人性化的设计,可以使用一个按钮,给它绑一个history.go(-1)的js事件即可。但如果当前页面发生了提交(PostBack)后(页面提交在.net的服务器控件中使用的非常频繁),history.go(-1)就不太好使了。

怎么办呢?可以这样做,.net你不是喜欢提交页面吗?我就记住你的提交次数,然后你提交几次我就go几次。设计一个这样的服务器控件BackButton。

BackButton.ascx:

<asp:Button ID="BtnReturn" runat="server" Text="返回"/>


BackButton.cs:

public partial class UC_BackButton : System.Web.UI.UserControl
{
protected int PostBackCount
{
get { return ViewState["PostBackCount"] == null ? 0 : (int)ViewState["PostBackCount"]; }
set { ViewState["PostBackCount"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
PostBackCount++;
}
BtnReturn.OnClientClick = "javascript:history.go(-" + Convert.ToString(PostBackCount + 1) + ");return false;";
}
}

前台代码很简单,就是一个.net服务器控件的按钮,后台有点技巧,利用ViewState将页面被提交的次数记录下来,然后设置点击按钮时候的js代码,提交几次我就往回go几次,管你呢。 呵呵

原文地址:https://www.cnblogs.com/overload/p/2238987.html