前台设计,尤其是管理功能的设计,允许用户后退是一个很人性化的设计,可以使用一个按钮,给它绑一个history.go(-1)的js事件即可。但如果当前页面发生了提交(PostBack)后(页面提交在.net的服务器控件中使用的非常频繁),history.go(-1)就不太好使了。
怎么办呢?可以这样做,.net你不是喜欢提交页面吗?我就记住你的提交次数,然后你提交几次我就go几次。设计一个这样的服务器控件BackButton。
BackButton.ascx:
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几次,管你呢。 呵呵