65.9K
CodeProject 正在变化。 阅读更多。
Home

网页事件

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.46/5 (8投票s)

2005年1月25日

viewsIcon

170502

downloadIcon

646

检测网页事件的顺序。

引言

默认情况下,网页包含四个基本事件。它们是 initloadprerenderunload 事件。只有前三个事件可以通过代码捕获。我们无法捕获 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 内部即可。

© . All rights reserved.