随笔 - 432  文章 - 0  评论 - 15  阅读 - 63万

OnPreInit,OnInit ,OnInitComplete ,OnPreLoad ,Page_Load等执行顺序

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default5 : System.Web.UI.Page
{
    static int count = 0;
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write(count + "Page_Load <br />");
        count++;
    }
    protected override void OnPreInit(EventArgs e)
    {
        base.OnPreInit(e);
        Response.Write(count + "OnPreInit <br />");
        count++;
    }
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        Response.Write(count + "OnInit <br />");
        count++;
    }
    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);
        Response.Write(count + "OnLoad <br />");
        count++;
    }
    protected override void OnPreLoad(EventArgs e)
    {
        base.OnPreLoad(e);
        Response.Write(count + "OnPreLoad <br />");
        count++;
    }
    protected override void OnLoadComplete(EventArgs e)
    {
        base.OnLoadComplete(e);
        Response.Write(count + "OnLoadComplete <br />");
        count++;
    }
    protected override void OnInitComplete(EventArgs e)
    {
        base.OnInitComplete(e);
        Response.Write(count + "OnInitComplete <br />");
        count++;
    }
    protected override void OnUnload(EventArgs e)
    {
        base.OnUnload(e);
    }
    protected override void OnDataBinding(EventArgs e)
    {
        base.OnDataBinding(e);
        Response.Write(count + "OnDataBinding <br />");
        count++;
    }
    protected override void OnPreRender(EventArgs e)
    {
        base.OnPreRender(e);
        Response.Write(count + "OnPreRender <br />");
        count++;
    }
    protected void btnGraphics_Click(object sender, EventArgs e)
    {
        //Bitmap bmp = new Bitmap(10, 10);
        //Graphics g = Graphics.FromImage(bmp);
        Response.Write(count + "btnGraphics_Click <br />");
        count++;
    }

}
复制代码

 

结果为:

0OnPreInit 
1OnInit 
2OnInitComplete 
3OnPreLoad 
4Page_Load 
5OnLoad 
6OnLoadComplete 
7OnPreRender

 

*session失效或者超时的跳转(站长后台)

判断页面(每个页面调用)

复制代码
protected override void OnPreInit(EventArgs e)
{
        new Users().GetUserInfoCookie(out _mywebhostid, out _myuserid);
        if (_myuserid == string.Empty || _mywebhostid == 0)
        {
            Response.Redirect("~/login.aspx?reurl=" + HttpUtility.UrlEncode(Request.Url.AbsoluteUri));
        }
        else
        {
            new Users().GetUserInfoCookie(out _mywebhostid, out _myuserid);
        }
        base.OnPreInit(e);
}
复制代码

 

登录页面

复制代码
 string strIp = Request.UserHostAddress;
 string strSuccessUrl = Request.QueryString["reurl"] == null ? "~/index.aspx" : HttpUtility.UrlDecode(Request.QueryString["reurl"].ToString());


 Users u = new Users();
 string loginMsg = u.LoginMsg(strUserId, strPassword, Request.UserHostAddress);
 u.LoginMsg2(strUserId, Request.UserHostAddress, Request.UserAgent, 1);

 // 登录跳转到成功页面
 if (loginMsg == string.Empty)
 {
     LoginLog();
     Response.Redirect(strSuccessUrl);
 }
复制代码

 

posted on   狼来了  阅读(745)  评论(1编辑  收藏  举报
编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示