2009-06-02 17 views

उत्तर

11

आपको आमतौर पर लोड() पर या उसके बाद बांधना चाहिए। इनिट() घटना का उद्देश्य आपको बाध्यकारी होने से पहले किसी भी गतिशील रूप से बनाए गए नियंत्रण बनाने की अनुमति देना है, ताकि बाध्यकारी होने की आवश्यकता होने पर वे मौजूद हों। लोड() एकमात्र विकल्प नहीं है, हालांकि ... यदि आपको किसी भी कारण से नियंत्रण पर बाध्यकारी होने की आवश्यकता है, तो आप प्रीरेंडर() ईवेंट में भी बाध्य कर सकते हैं। लोड() में आगे सेटअप करना भी संभव है, पृष्ठों की डेटाबिंड() विधि को कॉल करें, और पेज बाध्यकारी घटनाओं को एक और अधिक संरचित तरीके से बाध्य करने के लिए संभाल लें, यदि आपको आवश्यकता हो।

+0

+1 'प्रीरेंडर' का उल्लेख करने के लिए +1 (मैंने इसका उल्लेख करने के लिए उपेक्षित) क्योंकि यह सभी बच्चों पर 'EnsureChildControls' को दोबारा कॉल करता है। – Cerebrus

+1

सर्वोत्तम अभ्यास पर हालांकि कोई मार्गदर्शन? प्रारंभ में से चुनने के लिए इतनी सारी घटनाओं के साथ ऐसा लगता है कि कोई स्पष्ट विकल्प नहीं है। विशेष रूप से प्रीरेंडर बनाम नियंत्रण डेटा बाइंडिंग ईवेंट हैंडलर। Argh, एमवीसी –

+1

Ditto @ एमवीसी के लिए भलाई धन्यवाद। : डी सर्वोत्तम अभ्यास के लिए ... लोड() के साथ शुरू करें, और आवश्यकतानुसार परिष्कृत करें। लोड() आमतौर पर शुरू करने के लिए सबसे अच्छी जगह है जब तक कि आप इस तथ्य के बारे में नहीं जानते कि आपको बाद में बांधना होगा, या समग्र पृष्ठ डेटाबंड को ट्रिगर करने के लिए एक विशिष्ट कारण है। अधिकांश समय, यदि आपको प्रीरेंडर में बाध्य करने की आवश्यकता है, तो इसकी वजह से निष्पादन और आदेश देने की समस्या होती है जो अक्सर नियंत्रण के लिए बाध्य होने पर परिणाम देती है, जो कि पहले पूर्ण होने वाली किसी अन्य प्रक्रिया पर निर्भर होती है। – jrista

3

यह विशेष मामले पर निर्भर करेगा, हालांकि, सबसे आम उत्तर Page_Load होगा क्योंकि यह आमतौर पर अधिकांश डेटाबेस परिदृश्यों के लिए पर्याप्त होता है।

यहां तक ​​कि जटिल डेटा बाइंडिंग परिदृश्यों के लिए

, Page_Init होगा नहीं क्योंकि GridView की तरह कंटेनर नियंत्रण केवल Page_Load घटना के दौरान अपने बच्चों को लोड एक उपयुक्त स्थान हो। उन बच्चों तक पहुंचने के लिए आपको जीवन चक्र से आगे जाने की जरूरत है।

हालांकि, मेरे मामले में, जवाब "न तो" होगा। ऐसा इसलिए है क्योंकि मैं Page_Load के भीतर सीधे नियंत्रण नहीं करता हूं। इसके बदले में मैं एक अलग विधि रखना चाहता हूं जो डाटाबेसिंग करता है और पेजबलोड या किसी अन्य फ़ंक्शन से कॉल किया जा सकता है यदि मुझे पोस्टबैक के बाद फिर से बाइंड करना होगा।

संबंधित मुद्दे