से प्रोग्रामेटिक रूप से बल पूर्ण पोस्टबैक मेरे पास एक अपडेट पैनल में ग्रिड व्यू है। यह एक विरासत एएसपी है: ग्रिड व्यू, इसलिए इसमें थोड़ा "मुझे निर्यात करें" आइकन है जो बस यही करता है। यह एक एक्सएलएस फ़ाइल के साथ "निर्यात" क्लिक का जवाब देकर काम करता है। समस्या यह है कि यदि आप एक स्मार्ट पैनल के अंदर स्मार्ट ग्रिड व्यू डालते हैं, तो एएसपी.नेट सोचता है कि एक्सएलएस फ़ाइल पैनल में लिखी जानी चाहिए, जो स्पष्ट रूप से हम नहीं चाहते हैं। इसके लिए, मुझे हर बार एक पूर्ण पोस्ट-बैक चाहिए।अपडेटपेनल
ASP.NET में 4 संस्करण से पहले:
मेरे अद्यतन पैनल सभी प्रोग्राम के
समाधान जो इस सटीक परिदृश्य (जिनमें से कई इतने पर कहीं और कवर कर रहे हैं) में काम नहीं करते उत्पन्न कर रहे हैं , यदि आपने आईडी को नियंत्रण से छोड़ा है तो यह एक अपडेट पैनल के भीतर से भी एक पूर्ण पोस्टबैक करेगा। मेरा सवाल केवल नवीनतम और महानतम .NET 4 के लिए है।
ScriptManager.RegisterPostBackControl आशाजनक लग रहा है। यह नियंत्रण पोस्ट-बैक को ईवेंट पैनल के रूप में सही पैनल आईडी का उपयोग करता है, लेकिन अन्यथा मदद नहीं करता है।
अद्यतन पैनल में पोस्टबैक ट्रिगर जोड़ना। मेरे अपडेट पैनल प्रोग्रामेटिक रूप से जेनरेट किए जाते हैं, और एमएस यह बताता है कि यह समर्थित नहीं है। मेरे परीक्षण इंगित करते हैं कि वे सही हैं: मैंने इसे हर तरह से करने की कोशिश की, लेकिन यह काम नहीं करता है।
मुझे स्मार्ट ग्रिड व्यू के विचार से खुद को तोड़ने का विचार पसंद नहीं है, लेकिन मैंने इन परिस्थितियों में अद्यतन पैनेल के बाहर एक अतिरिक्त नियंत्रण डालने की कोशिश की। पैनल के अंदर उस बटन पर क्लिक को अनुकरण करने के लिए पैनल के अंदर मेरे निर्यात बटन पर क्लाइंट-साइड क्लिक करने का विचार क्लाइंट जावास्क्रिप्ट द्वारा रीडायरेक्ट किया जाना चाहिए। हालांकि यह काम नहीं करता है क्योंकि मैं स्पष्ट रूप से पृष्ठ पर "बाहरी" नियंत्रण नहीं जोड़ सकता - मुझे लगता है कि "नियंत्रण संग्रह को डेटाबिंड, इनिट, लोड, प्रीरेंडर या अनलोड लोड चरणों के दौरान संशोधित नहीं किया जा सकता है।" त्रुटि।
पैनल के बाहर "निर्यात" नियंत्रण को स्थानांतरित करने के लिए jQuery का उपयोग करना। एमएस में नियंत्रण की कुछ सूची होनी चाहिए जो उन्हें लगता है कि पैनल में "इन" हैं, और डीओएम के भीतर भौतिक स्थान कोई फर्क नहीं पड़ता।
क्या किसी के पास कोई काम है कि यह काम कैसे करें? मुझे पता है कि इस में काम करना चाहिए, लेकिन यह वही बात नहीं है।
यह मेरे लिए इस तरह से काम नहीं करता है। यदि मैं पैनल बनाते समय "पोस्टबैक ट्रिगर" जोड़ता हूं, तो यह विफल हो जाता है कि बटन.आईडी पहले से मौजूद नहीं है (उचित), लेकिन अगर मैं इसे अपने कस्टम नियंत्रण में जोड़ता हूं तो इसका कोई प्रभाव नहीं पड़ता है - कुछ जीवन चक्र की बात बताता है । मैं इसे छूंगा। – philw
अगर मैं उस नियंत्रण में ऑनइनिट() पर बटन नियंत्रण बटन डालता हूं जिसमें अद्यतन पैनल होते हैं, जो सुझाए गए अनुसार काम करता है। यदि इसके बजाय मैंने इसे रखा जहां मुझे इसकी आवश्यकता है, पैनल के अंदर कस्टम नियंत्रण के ऑनइनिट() में (अद्यतन पैनल ढूंढने के लिए नियंत्रण पदानुक्रम का बैक अप खोजना), तो यह काम नहीं करता है। अधिक प्रयोग .. – philw
यह सुनिश्चित नहीं है कि इससे मदद मिलेगी, लेकिन इस प्रश्न को चेकआउट करें (विशेष रूप से उत्तर): [FilePiewel में FormView में फ़ाइल अपलोड करें] (http://stackoverflow.com/questions/3555917/fileupload-in-formview-inside -an-updatepanel) – jdavies