到Visual Studio的安装目录下找cs文件,其中有一些文件就是模板,改了即可。不过这个不觉得有什么问题啊。

解决方案 »

  1.   

    比如我在在pabebase里边判断一下用户Session是否已经超时或者有没有登录,但是在当前页面的page_load事件里边又用到了了Session进行权限的检查,那么运行的时候,他首先执行的是当前页面的page_load事件里边的权限检查方法,但这里一用到Session就会出现页面错误了,而如果能够先执行pagebase里边的检查Session方法的话,刚可以跳转到一个指定页面进行友好提示! 请问这个冲突各位是怎样解决的呢?
      

  2.   

    原来是这问题,很简单啊。方法一:pagebase在init中判断Session。实际上关于权限应该在Init中判断,因为这关系到页面会不会显示,而不是页面显示成什么样方法二:在pagebase中重写(override)基类的OnLoad方法,令判断Session在base.OnLoad之前执行。方法三:在pagebase中重写OnInit方法,提前注册Load事件,或者在pagebase的构造hanshu中提前注册Load事件。
      

  3.   

    首先要谢谢你,但是你的方法二与三我都试过了,为什么还是不行呢?
    我把代码贴出来你帮我看看该怎样改呀?下边是pagebase页的基类检查Session是否还存在的简化代码:
    public class PageBase : System.Web.UI.Page
    {
    public PageBase()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Load += new System.EventHandler(this.Page_Load);
    }
    #endregion private void Page_Load(object sender, System.EventArgs e)
    { if(Session["userID"] != null)
    {
    }
    else
    {
    Response.Redirect("出错页面",true);

    }}
      

  4.   

    下边是当前新增页面的代码:
    private void Page_Load(object sender, System.EventArgs e)
    {
    //检查权限
    CheckRight CheckRightRun = new CheckRight();
    if (!CheckRightRun.CheckRightRun("Tra2_AblDev_A", "0", int.Parse(Session["userid"].ToString()))) 
    {
    Response.Redirect("../../Portal/Error_NoButton.aspx?action=您没有访问此页面的权限", true);
    }
        }
    }
      

  5.   

    当前新增页面是继承pagebase基类的现在的情况是当我打开该页面的时候,他会先执行当前新增页面的Page_Load事件,然后才去执行pagebase基类的Page_Load事件进行Session的检查,这样的话,当前页的检查权限的时候需要取Session的时候肯定就出错了请问对于这段程序,该怎样修改才可以达到我想要的效果呢?即,先执行pagebase里边的Page_Load事件去检查Session是否存在?? 如果不存在就跳转至指定的出错页面!???
      

  6.   

    你的新增页面是不是继承于PageBase类的?方法二:在PageBase中加入:override protected void OnLoad(EventArgs e)
    {
    if(Session["userID"] != null)
    {
    }
    else
    {
    Response.Redirect("出错页面",true);
    }  //在这里才会触发Load事件
    base.OnLoad();
    }方法三:protected PageBase()
    {
        this.Load += new System.EventHandler(this.Page_Load);
    }然后删掉窗体设计器生成的代码
      

  7.   

    是继承自PageBase的我刚才是搞错了,加了这个OnLoad()方法的重载做测试,如下所示:override protected void OnLoad(EventArgs e)
    {
    Response.Write("<script language='javascript'>alert('PageBaseOK!');</script>");
    base.OnLoad(e);
    }我不记得Response.Write("<script language=.....会在最后才执行了  哈哈
    现在改用下边这个做测试就OK了
    override protected void OnLoad(EventArgs e)
    {
    Response.Redirect("http://www.163.com",true);
    base.OnLoad(e);
    }多谢你了啊!   大哥!!!