2008-10-20 20 views
9

मेरे पास ASP.NET 2.0 वेब फ़ॉर्म पर पुनरावर्तक नियंत्रण है।एएसपी.NET पुनरावर्तक आइटमडेटाबाउंड प्रीरेंडर ईवेंट के बाद हो रहा है?

जैसा कि मैं इसे समझता हूं, पृष्ठ के सभी डेटा-बाध्य नियंत्रण Page_Load और Page_PreRender ईवेंट के बीच कहीं भी अपनी बाध्यकारी घटनाओं को आग लगाते हैं।

लेकिन, मेरा पुनरावर्तक के ItemDataBound घटना PreRender घटना के बाद हो रहा प्रतीत होता है।

यह कैसे है और क्या मैं किसी भी तरह से पेज नियंत्रणों तक पहुंच सकता हूं, सभी ItemDataBound घटनाओं के बाद निकाल दिया गया है?

अपडेट:

  • पुनरावर्तक पुनरावर्तक नियंत्रण में DataSourceID कथात्मक सेट के साथ एक ObjectDataSource उपयोग करता है।

  • डेटा स्रोत आईडी या ऑब्जेक्ट पृष्ठ जीवन चक्र के दौरान बिल्कुल संशोधित नहीं किया गया है।

उत्तर

7

घोषणात्मक डाटाबेसिंग (डेटा स्रोत स्रोत के माध्यम से निर्दिष्ट डेटासोर्स) प्रीरेंडर ईवेंट के बाद बाद में होता है। जो व्यवहार आप देख रहे हैं वह डिज़ाइन द्वारा है। यदि यह आवश्यक नहीं है तो आपको अपने नियंत्रण को स्पष्ट रूप से डेटाबेस बनाना चाहिए - बस इसकी डेटाबिंड विधि को कॉल करें।

+0

यदि यह सच है कि आप इसे कैसे समझाते हैं: http://msdn.microsoft.com/en-us/library/ms178472.aspx प्रीरेंडर | इस घटना से पहले: प्रत्येक डेटा बाध्य नियंत्रण जिसका डेटासोर्सिड प्रॉपर्टी सेट है उसे डेटाबंड विधि कहते हैं। –

+2

मैंने एक साधारण पृष्ठ के साथ परीक्षण किया। Page_Load Page_PreRender Repeater1_DataBinding परावर्तक Repeater.EnsureDataBound Repeater.OnPreRender में कहा जाता है के अनुसार Repeater1_ItemDataBound Repeater1_PreRender : यहाँ जिस क्रम में घटनाओं को मार डाला गया है। –

+1

आप सही हैं! धन्यवाद!ऐसा लगता है कि पुनरावर्तक आपका औसत डेटा-बाध्य नियंत्रण नहीं है! –

0

मुझे लगता है कि मैं एक ऐसी ही स्थिति थी, और मेरे विकल्प खुद को बाध्य करने के लिए, EnsureChildControls या कुछ इसी तरह की विधि को फोन करके नियंत्रण को मजबूर करना था।

+0

, लेकिन मैं क्यों यह जब तक इंतज़ार कर रहा था के रूप में बस उत्सुक था पेज_PreRender बांधने के बाद। अजीब! –

1

क्या आप विशेष रूप से फ़ाइल के पीछे अपने कोड में अपने पुनरावर्तक (myRepeater.DataBind();) को बाध्यकारी कर रहे हैं (उदाहरण के लिए पेज_लोड() ईवेंट के अंदर)?

क्या आपने एएसपी.नेट कार्यक्रमों की जीवन चक्र की जांच की है? क्षमा करें अगर आपको पहले से ही यह पता है, लेकिन बस मामले में: http://msdn.microsoft.com/en-us/library/ms178472.aspx

उम्मीद है कि यह मदद करता है।

रिकार्डो।

+0

नहीं। पुनरावर्तक के डेटाबेस को स्पष्ट रूप से नहीं कहा जाता है। यही कारण है कि मुझे लगा कि पृष्ठ लोड के बाद यह होगा लेकिन प्रीरेंडर से पहले, जैसा कि पृष्ठ जीवन चक्र द्वारा बताया गया है। –

1

वहाँ भी निम्न ब्लॉग पोस्ट में पुनरावर्तक घटना के बारे में एक अच्छा पोस्ट है: मैं जानता हूँ कि मैं यह Page_Load दौरान DataBind करने के लिए मजबूर कर सकते हैं

LinkButton ,Label inside Repeater - ASP.NET

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