मैं इस धारणा के तहत हूं कि एक नेस्टेड अपडेटपैनल में एक नियंत्रण शीर्ष स्तर अपडेटपैनल को रीफ्रेश करने का कारण बनता है (इस प्रकार अपडेटपेनल दोनों को रीफ्रेश करना) क्योंकि उस नियंत्रण पर कोई भी ईवेंट "निहित" ट्रिगर के रूप में कार्य करता है। क्या वो सही है?नेस्टेड अपडेट पैनेल माता-पिता को पोस्टबैक का कारण बनता है?
मैं इस तरह के तार कुछ करने की कोशिश कर रहा है अप-
UserControl
Parent UpdatePanel
"Show" button
ASP:Panel
Dynamically added UserControls, each with UpdatePanels
जब दिखाएँ बटन क्लिक किया जाता है, एएसपी: पैनल दिखाई देने लगता है और कुछ पीछे के अंत के आधार पर डायनामिक ही UserControls जोड़ने, शुरू होता है तर्क।
प्रत्येक गतिशील रूप से जोड़े गए नियंत्रण (अब से: UserControls) में अपने स्वयं के एटलस-सक्षम बटन और लिंक हैं, इसलिए उनके पास अपडेटपेनल भी हैं। वर्तमान में जब मैं UserControls में से किसी एक लिंक पर क्लिक करता हूं, तो एएसपी की संपूर्ण सामग्री: पैनल गायब हो जाता है, जैसे कि इसे फिर से प्रस्तुत किया जा रहा है। मेरे सभी गतिशील रूप से जोड़े गए नियंत्रण गायब हो जाते हैं, और डीबगर में उनकी कोई भी क्लिक ईवेंट नहीं पकड़ी जाती है।
मुझे लगता है कि यहां क्या हो रहा है यह है कि नेस्टेड अपडेट पैनलों में रहने वाले नियंत्रण माता-पिता अपडेटपैनल को वापस पोस्ट करने का कारण बन रहे हैं क्योंकि वे "निहित" ट्रिगर्स को फायर कर रहे हैं। क्या मेरे UserControls को स्वायत्तता से संचालित करने और एएसपी के साथ गड़बड़ करने का कोई तरीका नहीं है: पैनल जिसमें उन्हें शामिल है?
यदि नहीं, तो मुझे यहां किस रणनीति का पीछा करना चाहिए? अगर मुझे पूरे एएसपी को फिर से प्रस्तुत करना होगा: पैनल हर बार एक घटना (संभवतः कई) UserControls पर होता है, इसका मतलब है कि मुझे UserControls को फिर से बनाना होगा, जो बनाने के लिए थोड़ा सा प्रयास करें। मुझे उन्हें फिर से बनाने के लिए किसी प्रकार का दृश्य राज्य भी संरक्षित करना होगा। मैं एएसपी.नेट के लिए कुछ नया हूं और यह डरावना लगता है। मैं शीर्ष लीव UserControl और ASP को कभी भी रीफ्रेश नहीं करना चाहूंगा: पैनल यदि मैं इससे बच सकता हूं, और प्रत्येक गतिशील रूप से जोड़े गए उपयोगकर्ता नियंत्रणों को आग लगाना चाहिए और अपनी घटनाओं को असीमित रूप से संभाल लें।
संपादित करें: गतिशील रूप से नियंत्रण जोड़ने के बजाय, मैंने उन्हें मार्कअप (खराब समाधान नहीं) में जोड़ा। तो नियंत्रण गायब होने वाली समस्याओं से छुटकारा पा लिया, क्योंकि अब नियंत्रण गतिशील रूप से जोड़े नहीं गए हैं बल्कि मार्कअप में मौजूद हैं। लेकिन फिर भी माता-पिता अपडेटपेनल पोस्टिंग एक बड़ी प्रदर्शन हिट है, क्योंकि सभी उपयोगकर्ता नियंत्रण एक के बजाय पोस्ट हो रहे हैं। मैं केवल एक उपयोगकर्ता नियंत्रण पोस्टबैक कैसे बना सकता हूं? साथ ही, मैं जानना चाहता हूं कि गतिशील रूप से जोड़े गए नियंत्रणों की समस्या से कैसे छुटकारा पाना है?