条款6 理解页面事件
一个ASP.NET页面在运行时将经历一个生命周期,在生命周期中将执行一系列处理步骤。这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及呈现页面。在页生命周期的每个阶段中将引发一些事件,事件被引发时会运行程序员提供的事件处理代码。页面还支持自动事件连接,即ASP.NET将寻找具有特定名称的方法,并在引发特定事件时自动运行这些方法。如果@Page指令的AutoEventWireup属性设置为 true(若未定义该属性则默认为 true),页面事件将自动绑定至使用“Page_event”命名约定的方法,如 Page_Load 和 Page_Init。下表列出了主要的页面生命周期事件。
|
页 事 件 |
典 型 用 场 |
|
Page_PreInit |
使用IsPostBack属性确定是否是第一次处理该页;创建动态控件;动态设置Theme属性;读取或设置配置文件属性值等 |
|
Page_Init |
读取或初始化控件属性 |
|
Page_Preload |
事件在所有回发数据处理之后但在 Load 事件之前引发 |
|
Page_Load |
读取和更新控件属性 |
|
Control events |
处理特定事件,如 Button 控件的 Click 事件 |
|
Page_PreRender |
对页的内容进行最后更改 |
|
Page_Unload |
执行最后的清理工作,例如关闭打开的文件和数据库连接等 |
以下代码可以用于验证这些事件的触发顺序:
代码清单 6 1
protected void Page_Load(object sender, EventArgs e) protected void Page_PreInit(object sender, EventArgs e) protected void Page_Init(object sender, EventArgs e) protected void Page_PreLoad(object sender, EventArgs e) protected void Page_PreRender(object sender, EventArgs e) |
lbText是在页面顶端放置的一个Lable控件。运行后在浏览器中呈现如图6-1所示的效果。
需要特别说明的是Page_Unload事件,它容易被误解为关闭页面时所触发的事件。但是执行下面的代码后就会发现其实不然。
代码清单 6 2
protected void Page_Unload(object sender, EventArgs e) |
|
| 图 6-1 |
|
| 图 6-2 |
页面在请求完成后,就立刻触发了该事件。关闭页面是一个客户端的事件,请不要与之混淆。此外,如果在Page_Unload中调用Response.Write方法,还会得到一个“响应在此上下文中不可用。”的错误警告。
了解了页面事件的触发顺序,在实际网站的开发中,我们就可以根据需要在不同的事件发生时给出处理操作。
| 回书目 |
|
· 上周真题冲刺测试获奖.. · 全国计算机等考四级模.. · 08年3月各大网上书店及.. · 网络工程师模拟测试获.. · 全国计算机软考考试指.. · 3月24日WCF聊天活动 积.. |
· 全国计算机等级考试四.. · 软件项目估计:第2版 · 系统分析师基础知识自.. · 构建可扩展的Web站点的.. · 2008年全国计算机等级.. · 网络数据安全与保密自.. |
|
||||
| · 思科全球CEO钱伯斯第七.. · 北漂技术人90天求职纪实 · 2007年互联网大会 · 龙芯要做中国的“奔腾” · IPv6协议--拓展网络无.. · 国际文档格式标准开战 · 微软出价446亿美元收购.. · 贝恩资本携手华为22亿.. |
· Linux——从菜鸟到高手 · SOA 面向服务架构 · 2008年4月全国计算机等.. · 微软Forefront企业安全.. · 华为员工自杀频频拷问.. · 技术人求职简历完备手册 · 勇闯IT培训黑色围城 · 隐私保护技术探讨 |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · 中间件应用技术专题 · SQL Server入门到精通 · 病毒查杀专题 |
· 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux防火墙 · 打造安全服务器 · SOA 面向服务架构 · PHP开发应用手册 · ADSL应用面面俱到 · 入侵防护系统(IPS)初探 |
|||
|
||||
| · iSCSI应用与发展 · 中间件应用技术专题 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · iSCSI应用与发展 · RAID——磁盘阵列基础 · 病毒查杀专题 |
· 路由器设置与口令恢复 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · ADSL应用面面俱到 · ADSL应用面面俱到 · 反垃圾邮件技术应用 · PHP开发应用手册 · 中间件应用技术专题 |
|||