2009-05-12 18 views
5

के बाद एसेक्स पृष्ठ में पहले से ही मुझे इस सेटअप के साथ एक छोटी सी समस्या है। मेरे पास .ascx फ़ाइलों की एक सूची है और वे सभी नियंत्रक की गणना के मामले में अलग-अलग कार्य करते हैं। तो मेरी .aspx पृष्ठ पर मैं एक Ajax.ActionLink() पर क्लिक करें और इस है कि विशिष्ट .ascx आइटम मैं क्लिक किया के आधार पर फ़ाइल प्रस्तुत करना होगा। कि भीतर .ascx 1-3 घटनाओं है कि उनमें से 2 को सक्रिय कर देगा onclick घटनाओं रहे हैं और 1 onload है। onclick इवेंट (ओं) के साथ काम करना आसान है क्योंकि मैं इसे onclick="$("#toggleMe3").slideToggle("slow");" जैसे नियंत्रण ईवेंट में सीधे हार्डकोड कर सकता हूं और onload को .ascx लोड होने पर चलाना आवश्यक है, मैं $(document).ready(function(){}); कॉल में इसका परीक्षण कर रहा था, यह ठीक काम करता है .aspx पेज लेकिन जैसे ही मैं इसे .aspx पृष्ठ में जोड़ने का प्रयास करता हूं, यह लोड नहीं होता है और यह आदर्श है कि यह काम करता है लेकिन मुझे नहीं पता कि क्यों नहीं। वास्तव में स्क्रिप्ट टैग में कुछ भी काम नहीं करता है अगर मैं सीधे .ascx पृष्ठ में सम्मिलित करता हूं तो वे केवल तभी काम करते हैं जब नियंत्रण की घटनाओं में हार्डकोड किया जाए, उनमें से कुछ कम से कम; onload और onprerender आग नहीं है।

+0

एक ही समस्या यहाँ ठीक करता है की तरह एक स्क्रिप्ट जोड़ने की तरह लग रहा। –

उत्तर

1

मैं के बाद आंशिक पोस्टबैक लिपि में निर्दिष्ट $ (दस्तावेज़), एक ही समस्या थी .ready निष्पादित नहीं किया गया था। मैंने पाया यहाँ समाधान MSDN - PageRequestManager Class

नीचे दी गई समस्या

<script type="text/javascript"> 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(myReadyFunction); 
</script> 
1

मैं सफलता मेरी partials कि एक्सएचआर के माध्यम से भरी हुई हो में $ (document) .ready का उपयोग कर लिया है। क्या वे दृश्य हैं जिन्हें आप XHR के माध्यम से जावास्क्रिप्ट अपवाद फेंक रहे हैं? या क्या वे विकृत HTML हैं?

मैं आम तौर पर मेरी $ (दस्तावेज़) मेरी आंशिक के नीचे है कि मैं अजाक्स, की तरह के माध्यम से लोड पर .ready विधि ...

<script type="text/javascript"> 
$(document).ready(function(){ callMyFunction(); }); 
</script> 
+0

दुर्भाग्यवश यह मेरे लिए काम नहीं करता है, मैंने स्क्रिप्ट टैग को नीचे तक कोई भाग्य नहीं जोड़ा है। मैं अजाक्स कॉल को नियंत्रित करने के लिए MicrosoftAjax.js का उपयोग कर रहा हूं, न कि jquery AJAX फ़ंक्शन। – Ayo

+0

यह मेरे लिए काम करता है, कम से कम एफएफ 3.5 और आईई 7 विंडोज एक्सपी पर। हालांकि मुझे समझ में नहीं आ रहा है कि क्यों, jQuery डॉक्यूमेंटेशन इस मामले को संभाल नहीं करता है ... –

+0

यह क्रोम – Roch

1

मैं एक कठिन समय अपने प्रश्न को समझने के लिए किया था है ... लेकिन ये रहा।

आप AJAX कॉल का उपयोग कर तिथि लोड हो रहे हैं, $ (document) .ready() घटना नहीं आग होगा - पृष्ठ पहले ही लोड किया गया था क्योंकि। आप अभी और अधिक डेटा लोड कर रहे हैं।

आप पहले से ही नियंत्रण क्या प्रकट होगी पता है, जावास्क्रिप्ट पूर्व लोड, लेकिन सिर्फ क्लिक ईवेंट हैंडलर का उपयोग कर बंधन के बजाय, लाइव हैंडलर का उपयोग करें।

तो

$("#myControl").click(....); 

$("#myControl").live("click", ....); 

क्षमा में बदल जाता है अगर यह नहीं है कि आप क्या देख रहे थे।

+0

पर मेरे लिए काम करता है क्या यह मेरे एसीएक्स पेज के भीतर काम करेगा? – Ayo

+0

यदि पृष्ठ गतिशील रूप से लोड नहीं किया गया है, तो हाँ। अन्यथा आपको एएसपीएक्स से इवेंट हैंडलर को प्रीलोड करने के लिए लाइव की आवश्यकता है। अन्यथा आपको क्लाइंट पक्ष पर कुछ और हुक जोड़ना होगा ताकि यह पता चल सके कि सामग्री कब लोड की जाती है, और लोड की गई जावास्क्रिप्ट को कॉल करें। –

संबंधित मुद्दे