[Asp.net]類別繼承

摘要:[Asp.net]類別繼承

前言:之前看了許多人寫關於繼承的文章,有想到說如果要使用繼承時應該在什麼時機,後來有想到如果要寫一個每頁都是否有會員登入的情況好像就可以用到

       所以就參考了一下別人撰寫的範例來改寫

參考網址Gipi 實作Webform的畫面繼承

首先撰寫一個父類別


  public class Class1 : System.Web.UI.Page

    {
         
        protected void InitializeComponent()

        {
                              
            //註冊頁面載入時呼叫的事件

            this.Load += new System.EventHandler(this.Page_Load);

        }
         protected override void OnInit(EventArgs e)

        {
             
            base.OnInit(e);
          
            InitializeComponent();
            Response.Write("from class1 OnInit 
");
        }
         protected  void Page_Load(object sender, System.EventArgs e)
         {
             Response.Write("from class1 Load 
");
         }
    }

接下來就是改本頁的繼承

 


public partial class _Default:Class1
{
    protected void Page_Init(object sender, EventArgs e)
    {
        Response.Write("from Default OnInit 
");

    }
    protected  void Page_Load(object sender, EventArgs e)
    {
        Response.Write("from Default Load 
");
       
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Write("button click");
    }
}

 

執行結果:

所以可以確定的是本頁執行的順序比較快

所以就只要記得別在本頁init之前判別到跟要做動作的參數,然後就可在父頁的init去下判別是否已經登入,我先用session來判別

 


   protected override void OnInit(EventArgs e)

        {
             
            base.OnInit(e);
            if (Session["GUID"] == null)
            { 
            //導入到登入頁
                Response.Redirect("LoginPage.aspx");
            }
            InitializeComponent();
            Response.Write("from class1 OnInit 
");
        }