2010-09-09 22 views
7

Bir ASP.NET 4.0 projesi çalıştırıyorum.Page_PreInit çağrılmadı mı?

.aspx sayfasında başlıkta AutoEventWireup="true" ayarlanmış.

OnPreInit rağmen, Page_PreInit değil? Herkes yanlış olanı önerebilir mi?

protected void Page_PreInit(object sender, EventArgs e) 
{ 
    Response.Write("bar"); 
} 

protected override void OnPreInit(EventArgs e) 
{ 
    Response.Write("foo"); 
    base.OnPreInit(e); 
} 
+0

Sözdiziminiz iyi görünüyor. Bu MasterPage'de tanımlanmış mı? – Sauleil

+2

Açıkladığınız sorunu yeniden oluşturamadım. Ana sayfada AutoEventWireup tanımlandı mı? –

+0

Yoksa sayfayı mi devralıyorsunuz? – JBrooks

cevap

1

Page_PreInit olay ateş yapar, size olayın başında kesme noktası koyarsanız, bu görmek ve çalışma zamanında içinden adım atabilirsiniz. "Bar" dizesinin ekrana yazılmaması, OnPreInitEvent tarafından üzerine yazılmasının nedeni.

Lütfen aşağıdaki kod bölümüne bakın. İçine doğru ilerleyin ve bunun Page_PreInit içine nasıl gittiğini göreceksiniz ve ardından OnPreInitEvent ürününün üzerine yazılacaktır. ENTIRE OnPreInit olayına yorum yaparsanız, ekranda "Page_PreInit" yazıldığını görürsünüz.

using System; 

public partial class _Default : System.Web.UI.Page 
{ 
    string eventName = String.Empty; 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     Response.Write(eventName); 
    } 

    protected void Page_PreInit(object sender, EventArgs e) 
    { 
     eventName = "Page_PreInit"; 
    } 

    protected override void OnPreInit(EventArgs e) 
    { 
     base.OnPreInit(e); 
     eventName = "OnPreInit"; 
    } 
} 
İlgili konular