Front End Code (Default.aspx)
<%@ Page Language="vb" AutoEventWireup="true" CodeFile="Default.aspx.vb" Inherits="PageLifecycleTracker" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>ASP.NET Lifecycle Monitor</title>
</head>
<body>
<form id="webForm" runat="server">
<div>
<asp:Button ID="btnTrackCycle" runat="server" Text="Log Lifecycle Stage" OnClick="btnTrackCycle_Click" />
<br /><br />
<asp:Button ID="btnShowLog" runat="server" Text="View Log" OnClick="btnShowLog_Click" />
<br /><br />
<asp:Literal ID="litOutput" runat="server" />
</div>
</form>
</body>
</html>
Back End Code (Default.aspx.vb)
Partial Class PageLifecycleTracker
Inherits System.Web.UI.Page
' Store event history using ViewState to persist across postbacks
Private Property EventLog As String
Get
Return If(ViewState("EventLog"), String.Empty)
End Get
Set(value As String)
ViewState("EventLog") = value
End Set
End Property
' Appends the lifecycle stage to the log
Private Sub LogEvent(stage As String)
EventLog &= stage & "<br/>"
End Sub
' ASP.NET Page Lifecycle Events
Protected Sub Page_PreInit(sender As Object, e As EventArgs) Handles Me.PreInit
LogEvent("PreInit Executed")
End Sub
Protected Sub Page_Init(sender As Object, e As EventArgs) Handles Me.Init
LogEvent("Init Executed")
End Sub
Protected Sub Page_InitComplete(sender As Object, e As EventArgs) Handles Me.InitComplete
LogEvent("InitComplete Executed")
End Sub
Protected Sub Page_PreLoad(sender As Object, e As EventArgs) Handles Me.PreLoad
LogEvent("PreLoad Executed")
End Sub
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
LogEvent("Load Executed")
End Sub
Protected Sub Page_LoadComplete(sender As Object, e As EventArgs) Handles Me.LoadComplete
LogEvent("LoadComplete Executed")
End Sub
Protected Sub Page_PreRender(sender As Object, e As EventArgs) Handles Me.PreRender
LogEvent("PreRender Executed")
End Sub
Protected Sub Page_PreRenderComplete(sender As Object, e As EventArgs) Handles Me.PreRenderComplete
LogEvent("PreRenderComplete Executed")
End Sub
Protected Sub Page_SaveStateComplete(sender As Object, e As EventArgs) Handles Me.SaveStateComplete
LogEvent("SaveStateComplete Executed")
End Sub
Protected Sub Page_Unload(sender As Object, e As EventArgs) Handles Me.Unload
' Unload occurs after rendering - avoid output operations here
End Sub
' Event Handlers for User Actions
Protected Sub btnTrackCycle_Click(sender As Object, e As EventArgs)
LogEvent("Track Button Clicked")
End Sub
Protected Sub btnShowLog_Click(sender As Object, e As EventArgs)
litOutput.Text = EventLog
End Sub
End Class