在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几次,管你呢。 呵呵

知识共享许可协议
《在ASP.net中实现一个万能的“返回”按钮》常伟华 创作。
采用 知识共享 署名-相同方式共享 3.0 中国大陆 许可协议进行许可。
  • 多说评论
  • 签名
  • 新浪微博
  • 默认评论
  • Tab Header 5

0 条评论 / 点击此处发表评论

Tab Content 5

开发技术


开发平台和工具

sitemap     167.71ms