2008-12-05 5 views
5

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

ऐसा होता है भले ही मैं ViewState.Clear() करता हूं।

क्या ऐसा करने का कोई तरीका है?

उत्तर

-1

जब गतिशील रूप से नियंत्रण बनाते हैं तो आपको यह सुनिश्चित करना होगा कि आपके द्वारा बनाए गए हर नियंत्रण में एक अद्वितीय आईडी हो।

मुझे लगता है कि यहां क्या हो रहा है यह है कि आप अपने नियंत्रण नामकरण कर रहे हैं जैसे: नियंत्रण 1, नियंत्रण 2, नियंत्रण 3।

और शायद जब आप नियंत्रण के एक अलग सेट को बनाने के लिए क्लिक करते हैं तो आप एक ही नाम को एक अलग प्रकार के ऑब्जेक्ट पर दे सकते हैं, मान लें कि कंट्रोल 1 को पहले टेक्स्टबॉक्स की तरह बनाया गया था और जब आप इसे चेकबॉक्स पर क्लिक करते हैं।

कोड को देखने के बिना यह कहना मुश्किल है कि क्यों ViewState.Clear() काम नहीं कर रहा है, लेकिन यदि आप व्यूस्टेट को साफ़ करने का प्रयास कर रहे हैं तो आपको पोस्टबैक की आवश्यकता नहीं है, तो आप एक नए पेज का अनुरोध करने और तर्कों को पार करने का प्रयास कर सकते हैं एक पोस्टबैक के बजाय querystring पर। यह तेज़ भी होगा क्योंकि आपको सर्वर पर व्यूस्टेट जानकारी वापस भेजने की आवश्यकता नहीं है।