Control.Load

Control.LoadにLoad時のイベントハンドラを登録する。

Control.Load イベント (System.Web.UI) | Microsoft Docs

Default.aspx.csで、

using System;
using System.Data;
using System.Diagnostics;
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;

namespace Control_
{
    public partial class _Default : System.Web.UI.Page
    {
        protected override void OnInit(EventArgs e)
        {
            Init += new EventHandler(Page_Init);
            Debug.WriteLine("Page.OnInit before");
            base.OnInit(e);
            Debug.WriteLine("Page.OnInit after");
        }
        protected override void OnLoad(EventArgs e)
        {
            Load += new EventHandler(Page_Load);
            Debug.WriteLine("Control.OnLoad before");
            base.OnLoad(e);
            Debug.WriteLine("Control.OnLoad after");
        }
        protected void Page_Init(object sender, EventArgs e)
        {
            Debug.WriteLine("Page_Init");
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            Debug.WriteLine("Page_Load");
        }
    }
}

OnLoadで登録する。

これでもPage_Loadは呼ばれる。
これでもPage_Loadは呼ばれる。

これでもPage_Loadは呼ばれる。
でもこれだと、OnLoadの度にロード時のイベントハンドラを登録だから、なんかそれも微妙。

第5回 ASP.NETページのフレームワーク(後編)― @Pageディレクティブの活用 ―:連載 プログラミングASP.NET ―ASP.NETによるWebアプリケーション実践開発講座― (1/2 ページ) - @IT

やはり、OnInitで登録した方がいいかな。

これでも、

Page_Loadが呼ばれる
Page_Loadが呼ばれる

Page_Loadが呼ばれる。

Sample/aspnet/Control/Load/src/Control_ at master · bg1bgst333/Sample · GitHub