网页事件






1.46/5 (8投票s)
2005年1月25日

170502

646
检测网页事件的顺序。
引言
默认情况下,网页包含四个基本事件。它们是 init
、load
、prerender
和 unload
事件。只有前三个事件可以通过代码捕获。我们无法捕获 unload
事件,因为它发生在内容在客户端浏览器上渲染之后。 这解释了为什么上表最后一行的第二列没有值。
背景
对于刚开始学习 ASP.NET 的人来说,在进一步学习之前,了解这些事件页面的触发顺序非常重要。
使用代码
我创建了以下代码来展示如何通过代码捕获每个事件以及它们被调用的顺序
<%@ Page Language="C#"%>
<script Runat="server">
//declare one integer variable and set the starting
value to 1
public int sequence = 1;
//It is trapping init event page
void Page_Init(Object o,EventArgs e)
{
lblPageInit.Text = sequence.ToString();
sequence++; //increase the sequence
value by one every time this event is called
}
//It is trapping load event page
void Page_Load(Object o,EventArgs e)
{
lblPageLoad.Text = sequence.ToString();
sequence++; //increase the sequence
value by one every time this event is called
}
//It is trapping prerender event page
void Page_PreRender(Object o,EventArgs e)
{
lblPagePreRender.Text = sequence.ToString();
sequence++; //increase the sequence
value by one every time this event is called
}
//It is trapping unload event page
void Page_Unload (Object sender , EventArgs e)
{
lblPageUnload.Text = sequence.ToString();
sequence++; //increase the sequence
value by one every time this event is called
}
</script>
<html>
<head>
<style>
.title
{font-family:verdana;font-size:12pt;font-weight:bold;}
.subtitle
{font-family:verdana;font-size:10pt;font-weight:bold;font-style:italic;}
.sequence
{font-family:verdana;font-size:10pt;font-weight:normal;}
</style>
</head>
<body>
<form Runat="server">
<table border="0" width="500" cellpadding="1" cellspacing="1">
<tr>
<td width="70%" height="30" align="center" bgColor="orange">
<span class="title">Page Events</span>
</td>
<td width="30%" height="30" align="center" bgColor="orange">
<span class="title">Sequence No.</span>
</td>
</tr>
<tr>
<td>
<span class="subtitle">On Load</span>
</td>
<td align="center">
<asp:Label id="lblPageLoad" Runat="server" class="sequence"/>
</td>
</tr>
<tr>
<td bgColor="#d9d9d9">
<span class="subtitle
">OnInit</span></td><tdbgColor="#d9d9d9"align="center">
<asp:Label id="lblPageInit" Runat="server" class="sequence"/>
</td>
</tr>
<tr>
<td>
<span class="subtitle">On
PreRender</span>
</td>
<td align="center">
<asp:Label id="lblPagePreRender"
Runat="server"
class="sequence"/>
</td>
</tr>
<tr>
<td bgColor="#d9d9d9">
<span class="subtitle">OnUnLoad</span>
</td>
<tdbgColor="#d9d9d9"align="center">
<asp:Label id="lblPageUnload" Runat="server" class="sequence"/>
</td>
</tr>
</table>
</form>
</body>
</html>
关注点
通过了解哪个事件首先或接下来被调用,这将使新的 ASP.NET 程序员对代码应该放在哪里有一个概念。 例如:如果希望在网页加载时执行特定操作,只需将代码放在 Page_Load
内部即可。