ASP.NET Tutorial/Page Lifecycle/Page Events
Содержание
Error event example
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <title>Error event example</title> <script runat="server"> Sub Page_Load() Dim x, y, overflow As Integer x = 1 y = 0 overflow = x / y End Sub Sub Page_Error() Response.Write(Server.GetLastError.ToString()) Server.ClearError End Sub </script> </head>
<body>
<asp:label id="Message" runat="server"/>
</body> </html></source>
Here is the sequence of events that are raised whenever you request a page:
<source lang="csharp">
1. PreInit
2. Init 3. InitComplete 4. PreLoad 5. Load 6. LoadComplete 7. PreRender 8. PreRenderComplete 9. SaveStateComplete 10. Unload
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">
void Page_Load(object sender, EventArgs e) { Label1.Text = "Page Load"; } void Button1_Click(object sender, EventArgs e) { Label1.Text += "
Button Click"; } void Page_PreRender() { Label1.Text += "
Page PreRender"; }
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Show Page Events</title>
</head> <body>
<form id="form1" runat="server">
<asp:Button id="Button1" Text="Click Here" OnClick="Button1_Click" Runat="server" />
<asp:Label id="Label1" Runat="server" />
</form>
</body> </html></source>
Page events firing sequence (VB.net)
<source lang="csharp">
<%@ Page Language="VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">
Sub Page_Load() Label1.Text = "Page Load" End Sub Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Label1.Text &= "
Button Click" End Sub Sub Page_PreRender() Label1.Text &= "
Page PreRender" End Sub
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Show Page Events</title>
</head> <body>
<form id="form1" runat="server">
<asp:Button id="Button1" Text="Click Here" OnClick="Button1_Click" Runat="server" />
<asp:Label id="Label1" Runat="server" />
</form>
</body> </html></source>
Page flow tracing
<source lang="csharp">
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="PageFlowTracing" Trace="true"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Page Flow</title>
</head> <body>
<form id="form1" runat="server">
<asp:Label id="lblInfo" runat="server" EnableViewState="False"/> <asp:Button id="Button1" runat="server" Text="Button" OnClick="Button1_Click"/>
</form>
</body> </html> File: Default.aspx.cs
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class PageFlowTracing : System.Web.UI.Page {
private void Page_Load(object sender, System.EventArgs e) { lblInfo.Text += "Page.Load event handled.
"; if (Page.IsPostBack) { lblInfo.Text += "This is the second time you"ve seen this page.
"; } } private void Page_Init(object sender, System.EventArgs e) { lblInfo.Text += "Page.Init event handled.
"; } protected void Button1_Click(object sender, System.EventArgs e) { Trace.Write("Button1_Click", "About to update the label."); lblInfo.Text += "Button1.Click event handled."; Trace.Write("Button1_Click", "Label updated."); } private void Page_PreRender(object sender, System.EventArgs e) { lblInfo.Text += "Page.PreRender event handled.
"; } private void Page_Unload(object sender, System.EventArgs e) { lblInfo.Text += "Page.Unload event handled.
"; }
}</source>
Page life cycle events
<source lang="csharp">
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="PageFlow" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Page Flow</title>
</head> <body>
<form id="form1" runat="server">
<asp:Label id="lblInfo" runat="server" EnableViewState="False"> </asp:Label> <asp:Button id="Button1" runat="server" Text="Button" OnClick="Button1_Click"></asp:Button>
</form>
</body> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class PageFlow : System.Web.UI.Page {
private void Page_Load(object sender, System.EventArgs e) { lblInfo.Text += "Page.Load event handled.
"; if (Page.IsPostBack) { lblInfo.Text += "second time
"; } } private void Page_Init(object sender, System.EventArgs e) { lblInfo.Text += "Page.Init event handled.
"; } protected void Button1_Click(object sender, System.EventArgs e) { lblInfo.Text += "Button1.Click event handled.
"; } private void Page_PreRender(object sender, System.EventArgs e) { lblInfo.Text += "Page.PreRender event handled.
"; } private void Page_Unload(object sender, System.EventArgs e) { lblInfo.Text += "Page.Unload event handled.
"; }
}</source>
Unload event example
<source lang="csharp">
<%@ Page Language="vb" %> <html>
<head> <title>Unload event example</title> <script runat="server"> Dim TheFile As System.IO.StreamReader Sub Page_Load() TheFile = System.IO.File.OpenText(MapPath("Init.aspx"))Message.Text = "
" & Server.HtmlEncode(TheFile.ReadToEnd()) & ""
End Sub Sub Page_Unload() TheFile.Close() End Sub </script> </head>
<body>
<asp:label id="Message" runat="server"/>
</body> </html></source>