2008-08-15 45 views
5

मैं एएसपी.नेट के लिए बिल्कुल नया हूं और सीखने की कोशिश कर रहा हूं कि चीजें कैसे की जाती हैं। मैं एक सी # पृष्ठभूमि से आया हूं, इसलिए कोड-पीछे भाग आसान है, लेकिन वेब डेवलपर की तरह सोचना अपरिचित है।मैं एएसपीएक्स पेज से डेटा को एएक्सएक्स मोडल पॉपअप में कैसे पास कर सकता हूं?

मेरे पास एक एएसपीएक्स पृष्ठ है जिसमें चेकबॉक्स का ग्रिड है। मेरे पास एक बटन है जिसे एक बटन_Click ईवेंट के माध्यम से कोड किया जाता है ताकि पंक्तियों की एक सूची एकत्र की जा सके और उस सूची से सत्र चर बना दिया जा सके। मेरे एएसएक्स पेज के मॉडलपॉपअप एक्स्टेंडर द्वारा एक ही बटन को संदर्भित किया गया है (लक्ष्यकंट्रोलआईडी के माध्यम से) जो एसीएक्स पेज पर पैनल को नियंत्रित करता है।

जब बटन क्लिक किया जाता है, तो मोडल पॉपअप खुलता है लेकिन बटन_Click ईवेंट कभी नहीं निकाल दिया जाता है, इसलिए मोडल को अपना सत्र डेटा नहीं मिलता है।

चूंकि दो पृष्ठ अलग हैं, इसलिए मैं modpPopupExtender को aspx.cs कोड से कॉल नहीं कर सकता, मैं ascx.cs कोड से चेकबॉक्स की सूची तक नहीं पहुंच सकता, और मुझे कोई रास्ता नहीं दिख रहा है मेरे सत्र चर को पॉप्युलेट करें और फिर प्रोग्रामेटिक रूप से कुछ अन्य छिपा बटन या नियंत्रण सक्रिय करें जो मेरे मोडल पॉपअप को खोल देगा।

कोई विचार?

उत्तर

3

सभी उपयोगकर्ता नियंत्रक (.ascx) फ़ाइल उन नियंत्रणों का एक सेट है जिसे आपने कुछ पुन: प्रयोज्य कार्यक्षमता प्रदान करने के लिए एक साथ समूहीकृत किया है। इसमें परिभाषित नियंत्रण पृष्ठ लाइफसीलस को टूर करने वाले पृष्ठ के नियंत्रण संग्रह (.aspx) में अभी भी जोड़े गए हैं। ModalPopupExtender उपयोगकर्ता नियंत्रण क्लाइंट-साइड में नियंत्रण दिखाने और छिपाने के लिए जावास्क्रिप्ट और dhtml का उपयोग करता है। आप जो देख रहे हैं वह यह है कि क्लिक ईवेंट को क्लाइंट-साइड को ModalPoupExtender द्वारा संभाला जा रहा है और यह सर्वर पर पोस्ट-बैक को रद्द कर रहा है। यह डिज़ाइन द्वारा डिफ़ॉल्ट व्यवहार है। आप निश्चित रूप से पृष्ठ के नियंत्रण संग्रह को अपने उपयोगकर्ता नियंत्रण के कोड-बैक से एक्सेस कर सकते हैं, हालांकि यह एक ही नियंत्रण पेड़ का हिस्सा है। आपको जिस बच्चे की आवश्यकता है उसे खोजने के लिए बस किसी भी नियंत्रण के FindControl (xxx) विधि का उपयोग करें।

0

क्षमा करें, लेकिन मैं उलझन में हूं। आप सीधे एसीएक्स को कॉल नहीं कर सकते हैं, इसलिए ...

क्या आपका मोडल कोड जिसे आप एक ही पृष्ठ के भीतर से छिपे हुए पैनल की तरह कॉल कर रहे हैं;

या यह एक और एएसपीएक्स पृष्ठ है जिसे आप एक क्लिक ईवेंट पर कॉल कर रहे हैं?

1

डांस विथबंबू के उत्तर के बाद कुछ शोध के बाद, मुझे पता चला कि इसे कैसे काम करना है।
एक उदाहरण मेरे aspx पृष्ठ के भीतर मेरी ascx पेज के संदर्भ:

<uc1:ChildPage ID="MyModalPage" runat="server" /> 

aspx कोड-पीछे हड़पने और ModalPopupExtender (modalPopup नाम) को खोलने के लिए इस प्रकार दिखाई देगा:

AjaxControlToolkit.ModalPopupExtender mpe = 
    (AjaxControlToolkit.ModalPopupExtender) 
      MyModalPage.FindControl("modalPopup"); 
mpe.Show(); 
संबंधित मुद्दे