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