2012-07-04 16 views
3

我知道關於Page PreRender事件以及重寫OnPreRender,但不知道Page_PreRender方法的存在。最近在通過這個論壇時,我發現和搜索兩者之間的差異,但不能得到多少?OnPreRender vs Page_PreRender

這裏是我的觀察:

我有一個標籤爲Label1的頁面。

方案1:Lable1的

protected void Page_Load(object sender, EventArgs e) 
    { 
     Label1.Text = "load "; 
    } 
    protected override void OnPreRender(EventArgs e) 
    { 
     Label1.Text += "OnPreRender "; 
     base.OnPreRender(e); 
    } 
    private void Page_PreRender(object sender, System.EventArgs e) 
    { 
     Label1.Text += "Page_PreRender "; 
    } 

值將是:負載的OnPreRender Page_PreRender

方案2:

 protected void Page_Load(object sender, EventArgs e) 
     { 
      Label1.Text = "load "; 
     } 
     protected override void OnPreRender(EventArgs e) 
     { 
      base.OnPreRender(e); 
      Label1.Text += "OnPreRender "; 
     } 
     private void Page_PreRender(object sender, System.EventArgs e) 
     { 
      Label1.Text += "Page_PreRender "; 
     } 

注base.OnPreRender(e)中的呼叫順序; Lable1的

值將是:負荷Page_PreRender的OnPreRender

我只能說base.OnPreRender(E)是調用Page_PreRender(),不過,是不是私有?

有人可以告訴,兩者之間以及何時使用哪些區別? 一般應使用哪一個?

回答

2

當您的頁面設置爲AutoEventWireup="true"時,會調用Page_事件。這就是你如何創建它們並讓它們在沒有明確連接的情況下被調用。

+0

感謝您的回覆,您可以提供一些資源參考,我可以理解兩者如何在ASP .NET頁面生命週期中一起使用? – Falaque

+0

http://msdn.microsoft.com/en-us/library/ms178472.aspx – maembe

5

頁面的OnPreRender方法負責提高Page_PreRender事件。通常你只需訂閱Page_PreRender事件。

如果您在安全地提起Page_PreRender事件之前需要做一些特殊處理,那麼您可以在調用base.OnPreRender(e)之前重寫OnPreRender方法並執行處理。

相關問題