接触.Net时间不久,有关页面事件的知识,跟大家分享一下。

一个ASP.NET页面在运行时将经历一个生命周期,在生命周期中将执行一系列处理步骤。这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及呈现页面。在页生命周期的每个阶段中将引发一些事件,事件被引发时会运行程序员提供的事件处理代码。页面还支持自动事件连接,即ASP.NET将寻找具有特定名称的方法,并在引发特定事件时自动运行这些方法。如果@Page指令的AutoEventWireup属性设置为 true(若未定义该属性则默认为 true),页面事件将自动绑定至使用“Page_event”命名约定的方法,如 Page_Load 和 Page_Init。如AutoEventWireup属性设置为false,则页面对应.aspx.cs类中的对应事件的方法将不自动执行。 下表列出了主要的页面生命周期事件。

页 事 件

典 型 用 场

Page_PreInit

使用IsPostBack属性确定是否是第一次处理该页;创建动态控件;动态设置Theme属性;读取或设置配置文件属性值等

Page_Init

读取或初始化控件属性

Page_Preload

事件在所有回发数据处理之后但在 Load 事件之前引发

Page_Load

读取和更新控件属性

Control   events

处理特定事件,如 Button 控件的 Click 事件

Page_PreRender

对页的内容进行最后更改

Page_Unload

执行最后的清理工作,例如关闭打开的文件和数据库连接等

以下代码可以用于验证这些事件的触发顺序:

代码清单1

C#代码                          

  1. 1.    protected void Page_Load(object sender, EventArgs e)
    2.
    3.    {
    4.
    5.    lbText.Text += "Page_Load <hr> ";
    6.
    7.    }
    8.
    9.    protected void Page_PreInit(object sender, EventArgs e)
    10.
    11.    {
    12.
    13.    lbText.Text +=  "Page_PreInit <hr>";
    14.
    15.    }
    16.
    17.    protected void Page_Init(object sender, EventArgs e)
    18.
    19.    {
    20.
    21.    lbText.Text += "Page_Init <hr>";
    22.
    23.    }
    24.
    25.    protected void Page_PreLoad(object sender, EventArgs e)
    26.
    27.    {
    28.
    29.    lbText.Text += "Page_PreLoad <hr>";
    30.
    31.    }
    32.
    33.    protected void Page_PreRender(object sender, EventArgs e)
    34.
    35.    {
    36.
    37.    lbText.Text += "Page_PreRender <hr>";
    38.
    39.    }  

lbText是在页面顶端放置的一个Lable控件。运行后在浏览器中呈现如图1所示的效果。

需要特别说明的是Page_Unload事件,它容易被误解为关闭页面时所触发的事件。但是执行下面的代码后就会发现其实不然。

代码清单 2

C#代码  

1.    protected void Page_Unload(object sender, EventArgs e)
2.
3.    {
4.         System.Web.HttpContext.Current.Response.Write("<Script>alert('Page_Unload');</Script>");
5.    }  

保存并运行页面后就会发现,在页面加载后就看到了图2的效果。

页面在请求完成后,就立刻触发了该事件。关闭页面是一个客户端的事件,请不要与之混淆。此外,如果在Page_Unload中调用Response.Write方法,还会得到一个“响应在此上下文中不可用。”的错误警告。

了解了页面事件的触发顺序,在实际网站的开发中,我们就可以根据需要在不同的事件发生时给出处理操作。

转载于:https://www.cnblogs.com/zhuaixia/archive/2013/01/05/2845700.html

也谈ASP.NET页面事件相关推荐

  1. ASP.NET 页面事件执行顺序 收藏

    ASP.NET 页面事件执行顺序 收藏 过程描述 下面是ASP.NET页面初始的过程: 1. Page_Init(); 2. Load ViewState; 3. Load Postback data ...

  2. ASP.NET页面事件详解

    ASP.NET页面事件详解 ASP.NET页面事件详解 1.Page_Init()事件 当页面初始化时发生此事件.可以利用Page_Init()将该事件与要在.NET页面上显示控件之前的运行的代码建立 ...

  3. ASP.NET页面事件:顺序与回传详解

    一.初始化 ·当页面被提交请求第一个方法永远是构造函数.您可以在构造函数里面初始一些自定义属性或对象,不过这时候因为页面还没有被完全初始化所以多少会有些限制.特别地,您需要使用HttpContext对 ...

  4. asp.net页面事件:顺序与回传

      [%=@title%] [%=@count%]票 [[%=@percent%]%] l 初始化 2 当页面被提交请求第一个方法永远是构造函数.您可以在构造函数里面初始一些自定义属性或对象,不过这时 ...

  5. Asp.net页面事件引发后台程序处理原理【转】

    以前在ASP中,不存在事件处理,传统的处理方法是通过隐藏文本框来提交不同的参数进行区别用户的不同动作,或则用不同的URL查询字符串来区别.ASP.NET中出现了事件处理,让开发人员区分用户动作方便并简 ...

  6. ASP.NET 页面事件执行顺序

    2009-12-02 09:59:58|  分类: .C Sharp| |  标签: |字号大中小 订阅 在作完上图后,无意中看到网上类似的一篇文章,也非常精彩,转载在下面供大家参考.申明,以下内容为 ...

  7. 引用asp.net母版页后,母版页和内容页的页面事件执行顺序

    如下,经测试得到的执行步骤: 第01步.内容页的 Page_PreInit 第02步.母版页的 Page_Init 第03步.内容页的 Page_Init 第04步.内容页的 Page_InitCom ...

  8. asp.net页面回传与js调用服务端事件、PostBack的原理详解

    ASP.ENT中,有两种实现页面PostBack的机制,不管是哪种回传方式,最终均是Form表单提交. 一.原始的Form表单提交 WebControls中的Button和ImageButton控件, ...

  9. asp.net 页面从初始化到卸载事件顺序(及对页面控件调用)完整列表【转】

    asp.net 页面从初始化到卸载事件顺序(及对页面控件调用)完整列表[转] 客户发出POST请求-〉创建Page派生类,调用构造函数-〉调用Page类的IHttpHandler.ProcessReq ...

最新文章

  1. MapReduce原理与设计思想
  2. mac电脑配置java环境变量_教你在Mac系统中配置JAVA环境变量的方法
  3. (转)目前比较全的CSS重设(reset)方法总结
  4. MySQL不能查看表_mysql root用户登录后无法查看数据库全部表
  5. “不融资,不上市”的帆软为何上榜福布斯2021 Cloud 100强?
  6. Cookie禁用了,Session还能用吗?
  7. python pipeline框架_爬虫(十六):Scrapy框架(三) Spider Middleware、Item Pipeline|python基础教程|python入门|python教程...
  8. [springboot]集成org.quartz-scheduler进行任务调度(定时任务)
  9. 男人们必知的人生定律
  10. PDF文件实现在线盖章
  11. 网站在线视频播放实现
  12. 计算机函数求最大值怎么设置,高中数学函数的最大值和最小值怎么求
  13. 云享·人物丨造梦、探梦、筑梦,三位开发者在华为云上的寻梦之旅
  14. c语言 不同的io口组成数组,本章内容并行IO口电路结构认识C语言C语言基本语句C语.ppt...
  15. c语言链表正序输出,建立正序链表,该怎么处理
  16. 鸿蒙系统怎么安装网易云音乐,网易云音乐鸿蒙版 - 魔法系统之家下载
  17. 移动端购房工具--汇率计算的实现
  18. golang代码实现chmod 777效果
  19. Python与Arduino绘制超声波雷达扫描
  20. 超人学院二期学员分享hadoop工作经验

热门文章

  1. 【Android】Activity的task相关
  2. pandas 作图 统计_解决pandas 作图无法显示中文的问题
  3. serverless 框架_Malaguv1.4.1支持Serverless的微服务框架
  4. MySQL的MyISAM和InnoDB存储引擎表结构
  5. java html 转图片_Java HTML转换为图片
  6. LVS(11)——wrr
  7. Shell(9)——sed(1)
  8. php使mysql显示错误_如何针对依赖用户输入的长查询在PHP中显示MySQL错误?
  9. 封装数据库一系列操作,包括打开/新建数据库,增删改查
  10. 查看linux显示文件大小,Linux下查看占用最大的文件和文件夹大小