पर सेट किया गया है यदि AutoEventWireup
विशेषता false
पर सेट की गई है, तो ईवेंट को मैन्युअल रूप से वायर्ड करने की आवश्यकता है। हालांकि, मुझे Page_PreInit
आग लगने लगते हैं। मुझे लगता है कि मैं वायरअप को बहुत देर हो सकता है (एक बार हम पहले से ही Page_PreInit
से पहले) हैं, लेकिन मुझे यकीन नहीं है कि वायरअप को और कहां रखा जाए।मैन्युअल रूप से पेज_PreInit ईवेंट को वायरिंग कर रहा है, ऑटोएवेंटवायरअप को
उदाहरण के लिए ...
protected override void OnInit(EventArgs e)
{
base.OnInit(e)
PreInit += new EventHandler(Page_PreInit);
Load += new EventHandler(Page_Load);
}
protected void Page_PreInit(object sender, EventArgs e)
{
Response.Write("Page_PreInit event fired!<br>"); //this is never reached
}
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("Page_Load event fired!<br>");
}
में ऊपर कोड परिणाम "Page_Load घटना निकाल दिया!" प्रदर्शित किया जा रहा है, लेकिन Page_PreInit
से कुछ भी नहीं। मैंने वायरअप से पहले और बाद में की कोशिश की, और इसका कोई प्रभाव नहीं पड़ा।
ग्राफ here दिखाया का कहना है कि OnInit
विधि वास्तव में PreInit
घटना के बाद आता है। इस बात को ध्यान में रखते हुए, मैंने OnPreInit
ओवरराइड करने की कोशिश की और एक ही काम किया --- कोई प्रभाव नहीं।
MSDN लेख here स्पष्ट रूप से कहा गया है कि false
करने के लिए AutoEventWireup
सेट की स्थिति में, घटनाओं एक ओवरराइड OnInit
में तार हो सकता है। उदाहरण का उपयोग वे Page_Load
है, और निश्चित रूप से यह मेरे लिए करता है जैसे काम करता है, लेकिन वे यह नहीं संबोधित करते हैं कि यह Page_PreInit
ईवेंट के लिए काम नहीं कर रहा है।
मेरा प्रश्न है: मैं Page_PreInit
घटना false
करने के लिए सेट AutoEventWireup
के मामले में ऊपर तार कैसे मिल सकता है?
मुझे लगता है कि MSDN page पर सूचीबद्ध विकल्प हैं, जैसे पेज के कन्स्ट्रक्टर का उपयोग करना। मैं विशेष रूप से जानना चाहता हूं कि OnInit
के साथ उनका सुझाव कैसे दिया जाए।
आप निर्माता में यह करने के लिए मिल गया है या 'base.OnInit' को कॉल करने से पहले। – Strelok
दुर्भाग्यवश आधार से ऊपर की रेखाएं डालने .ऑन इनिट (ई) का कोई प्रभाव नहीं पड़ता है, और पहले की घटना (जैसे OnPreInit) का लक्ष्य अभी भी पेज_PreInit ईवेंट तक नहीं पहुंच जाएगा। – CptSupermrkt