2010-02-24 17 views
12

मैं एक स्क्रिप्ट किसी भी समय किसी भी पेज आवेदन में भरी हुई है चलाने के लिए सक्षम होना चाहता हूँ। क्या कहीं कहीं मैं इसे जोड़ सकता हूं? या क्या मुझे प्रत्येक पृष्ठ लोड में कोड जोड़ना है?क्या कोई फ़ंक्शन किसी भी समय आपके एप्लिकेशन में लोड किया गया कोई फ़ंक्शन है?

+5

हालांकि मत भूलना, अगर आप AJAX का उपयोग, वहाँ चीजें हैं जो एक पृष्ठ नहीं हैं के लिए अनुरोध, बस कुछ विचार करने के लिए के रूप में हो सकता है। –

उत्तर

26

आप तीन बातों में से एक कर सकते हैं:

  1. उपयोग एक base page अपने आवेदन में, और अपने आवेदन में सभी पृष्ठों है इसे से प्राप्त करती हैं। बेस पेज में पेज_लोड ईवेंट में, आपको जो करना है वह करें। सुनिश्चित करें कि आपके ऐप में विरासत वाले पृष्ठ बेस पेज के पेज_लोड ईवेंट को कॉल करते हैं यदि वे override page_load (वे आमतौर पर करते हैं)। और क्योंकि Page_Load ओवर-द प्रयोग किया जाता है, मैं संबंधित सलाह all the page events को देखने के लिए (विशेष रूप से विशेष रूप से page_prerender) मामले में एक और अधिक उपयुक्त है दे देंगे।

  2. घटनाओं global.asax पेज में आग है, जो जब भी एक अनुरोध प्राप्त हुआ है ऐसा प्रयोग करें। Application_BeginRequest ईवेंट देखें। लेकिन, वहां घटनाओं का एक गुच्छा है, इसलिए check them all out यदि कोई अन्य घटना आपकी स्थिति पर अधिक लागू होती है। (बस नियमित रूप से पेज की घटनाओं की तरह, हमेशा एक ही घटना का उपयोग करने का बुरी आदत में नहीं मिलता है।)

  3. वहाँ एक मौका है कि क्या आप हर बार एक master page में जाना चाहिए होता है करने के लिए विशेष रूप से चाहते हैं यदि यह लेआउट से संबंधित है। मास्टर पेज cutesy लगता है लेकिन खुद को अच्छे डिजाइन में साबित कर दिया है। यदि आप सामान्य कार्यक्षमता के लिए मास्टर पेज के पेज_लोड ईवेंट का उपयोग करते हैं, तो आपको इसे प्रत्येक सामग्री पृष्ठ के पृष्ठ_लोड से कॉल करने की आवश्यकता नहीं है; यह हर बार after the called-page की पेज_लोड घटना को आग लगती है। (मैं यह उल्लेख यह पहली बार में मास्टर पेजेस और आधार पृष्ठों भ्रमित करने के लिए आसान है क्योंकि।)

+0

+1 –

+0

मैं मास्टर पृष्ठ का उपयोग कर के बाद से यह यह करने के लिए संबंधित समाप्त हो गया सभी आधार कवर करने रास्ता। लेकिन मैं पूछने से पहले वैश्विक.एक्सएक्स में देख रहा था। हालांकि यह नहीं मिला। बहुत - बहुत धन्यवाद। – Hazior

+1

हां, यह हम में से प्रत्येक के साथ होता है। कहाँ है!?! हालांकि यह एक विशेष फ़ाइल है जिसे वीएस के बारे में पता है, यह डिफ़ॉल्ट रूप से नहीं है। ए .नेट ऐप को * ग्लोबल.एक्सएक्स * की आवश्यकता नहीं है। 2008 में फ़ाइल, नई फ़ाइल पर जाएं, और ** वैश्विक एप्लिकेशन वर्ग ** का चयन करें। 2005 में मुझे लगता है कि आप फ़ाइल, नई, फ़ाइल करते हैं, फिर इसे चुनें। –

1

आप अपने पृष्ठों के लिए एक आम आधार वर्ग बना सकते हैं, System.Web.UI.Page से उतरा और में कोड जोड़ने वहां एक ऑनलोड हैंडलर।

1

आप हर aspx पेज अनुरोध पर कोड सुई ASP.Net पृष्ठ जीवन चक्र के किसी भी विधि में अवरोध डालने के PageAdapters उपयोग कर सकते हैं।

यह लेख मदद कर सकते हैं अपने काम की समझ में: http://dotnet.org.za/hiltong/archive/2008/01/06/injecting-a-page-base-class-in-asp-net.aspx

सादर।

4

तुम भी बना सकते हैं और रजिस्टर एक HTTP Module सकता है। इसका लाभ यह है कि वे web.config में पंजीकृत हैं, इसलिए यदि आप चाहें तो रनटाइम पर उन्हें जोड़ और निकाल सकते हैं ... और एक से अधिक हैं।

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