/ / डायनामिक्स नियंत्रण पोस्टबैक पर खो गया - c #, asp.net, पोस्टबैक, पुनरावर्तक, पृष्ठ-जीवनचक्र

पोस्टबैक - सी #, एएसपीनेट, पोस्टबैक, रिपेटर, पेज-लाइफसाइक्ल पर डायनेमिक्स नियंत्रण खो गया

यह पुरानी चेस्टनट फिर से।

मेरा पेज निम्नानुसार निर्मित है; मेरे पास एक लटकती सूची है जो पहले लोड पर डेटाबाउंड है। जब उपयोगकर्ता इस से एक मूल्य का चयन करता है, तो एक पोस्टबैक किया जाता है जो फिर एक पुनरावर्तक नियंत्रण को डिटैबाइंड करता है।

इस पुनरावर्तक नियंत्रण का आइटमटेम्पलेटएक प्लेसहोल्डर नियंत्रण होता है। पुनरावर्तक के ItemDataBound घटना के पीछे कोड में, मैं इस प्लेसहोल्डर, एक हिडनफ़ील्ड और एक चेकबॉक्स में गतिशील रूप से दो नियंत्रण जोड़ रहा हूं।

जब उपयोगकर्ता सहेजें बटन पर क्लिक करता है, तो मैं चाहता हूंउन सभी को गतिशील रूप से बनाए गए फ़ील्ड और चेकबॉक्स पर पुनरावृति करना और उनके मूल्यों को निर्धारित करना। हालाँकि जब उपयोगकर्ता सहेजें बटन पर क्लिक करता है, तो वे नियंत्रण अब मौजूद नहीं होते हैं जैसा कि पृष्ठ ट्रेस में दिखाया गया है।

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

सेव बटन पर क्लिक करने से हुई पोस्टबैक के माध्यम से गतिशील नियंत्रण बनाए रखने के लिए मुझे क्या करने की आवश्यकता है?

उत्तर:

जवाब के लिए 0 № 1

समस्या यह है कि जब आप सहेजें बटन दबाते हैंसंभावित रूप से आप पुनरावर्तक को दोबारा नहीं बाँधते हैं और आपके द्वारा आइटमडाउनबाउंड इवेंट में रन टाइम के दौरान आपके द्वारा जोड़े गए नियंत्रण उपलब्ध नहीं हैं (क्योंकि वे अब मौजूद नहीं हैं) क्यों आप डिजाइन के समय उन नियंत्रणों को नहीं जोड़ते हैं जो कि ईवल फ़ंक्शन का उपयोग करके छिपे हुए फ़ील्ड के मूल्य को सेट करते हैं?


जवाब के लिए 0 № 2

आप बस उन्हें गतिशील रूप से नहीं बनाते हैंपुनरावर्तक के लिए ड्रॉप-डाउन सेट दृश्यता सही या गलत के चयन परिवर्तन पर, जो आपकी समस्या को हल करेगा। वापस पोस्ट करने के बाद आपको उन नियंत्रणों को फिर से बनाना होगा क्योंकि वे गतिशील रूप से बनाए गए हैं।