前台设计,尤其是管理功能的设计,允许用户后退是一个很人性化的设计,可以使用一个按钮,给它绑一个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几次,管你呢。 呵呵

posted on 2011-11-07 10:55  Overload  阅读(484)  评论(0编辑  收藏  举报