2011-11-28 10 views
11

http://i.stack.imgur.com/dVjHt.jpgरजिस्टर क्लाइंटस्क्रिप्ट ब्लॉक पैरामीटर वास्तविक परिदृश्यों में उपयोग करते हैं?

enter image description here

मैं Control, type, key इस वर्ग के उपयोगों के वास्तविक उपयोग समझ में आ कभी नहीं।

सामान्य Ive में हमेशा के साथ प्रयोग किया: this , GetType() , "xx"

लेकिन अब मैं सच में जानना चाहते हैं।


MSDN:

नियंत्रण: "नियंत्रण है कि ग्राहक स्क्रिप्ट दर्ज की है"

तो ...? इससे किस अंतर में यह पंजीकृत होता है? लिपि पृष्ठ के प्रमुख में होगी ..

प्रकार:

प्रकार "ग्राहक स्क्रिप्ट ब्लॉक के प्रकार के" ??? इसकी जावास्क्रिप्ट। वह मुझसे एक और प्रकार क्यों चाहता है?

कुंजी: "एक अनूठा indentifier"

कि मैं समझ सकता हूँ - मामलों जो बाद में दूर करने के लिए ... लेकिन मैं कुछ और अधिक उन्नत स्पष्टीकरण

के लिए अच्छा लगेगा मैं कर सकता हूँ के लिए कृपया, वास्तविक जीवन परिदृश्य जिसमें मैं TRULY उन पैराम्स के साथ खेलना है?

+1

अच्छा वास्तव में सवाल। मैं भी वही जवाब सोच रहा था ... – Tarik

उत्तर

2
सबसे महत्वपूर्ण हिस्सा

नियंत्रण जो html टैग में नियंत्रण आप आप उपयोगकर्ता नियंत्रण है अगर उदाहरण के लिए स्क्रिप्ट पंजीकृत करना चाहते है और आप इस लाइन है कि उपयोग के लिए सिर्फ स्क्रिप्ट चलाना चाहते

ScriptManager.RegisterStartupScript(this, this.GetType(), "alertscript", "document.getElementById('userControl_h1TAG')", true); 

लेकिन आप उस पेज उपयोग उपयोगकर्ता के नियंत्रण से सीएस कोड में इस लाइन का हिस्सा करने के लिए ब्लॉक और स्क्रिप्ट पंजीकृत करना चाहते हैं जब:

ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "alertscript", "document.getElementById('page_h1TAG')", true); 
+0

क्या आप वाकई इसके बारे में निश्चित हैं? जावास्क्रिप्ट के पास पूरे एचटीएमएल पेज तक पहुंच होगी, ताकि आप पेज पर हर तत्व तक पहुंच सकें, भले ही आप इसे नियंत्रण के लिए पंजीकृत करते हों। –

+1

आप सही हैं लेकिन जब आप अपडेटपैनेल का उपयोग करते हैं तो समस्या होगी [लिंक] (http://www.dotnetcurry.com/ShowArticle.aspx?ID=200) - –

0

MSDN पर देखने के बाद मैं थोड़ा अलग मानकों के साथ विधि पाया है, लेकिन मुझे लगता है कि जवाब आप ज्यादा समझ प्रदान करेगा: (http://msdn.microsoft.com/en-us/library/bb350750.aspx):

नियंत्रण: ग्राहक स्क्रिप्ट अवरोध है कि इस पद्धति का उपयोग करके पंजीकृत हैं पृष्ठ पर केवल तभी भेजा जाता है जब नियंत्रण एक नियंत्रणपटल नियंत्रण के अंदर एक नियंत्रण का प्रतिनिधित्व करता है जिसे अद्यतन किया जा रहा है

प्रकार: यह पैरामीटर आमतौर पर नियंत्रण है कि स्क्रिप्ट दर्ज की है के प्रकार को पुनः प्राप्त करने typeof ऑपरेटर (सी #) या GetType ऑपरेटर (विजुअल बेसिक) का उपयोग करके निर्दिष्ट किया जाता है।

और मुझे लगता है कि कुंजी यह सुनिश्चित करने के लिए है कि एक कोडब्लॉक दो बार शामिल नहीं है? या यदि आप एक ही कुंजी का फिर से उपयोग करते हैं तो यह आपको चेतावनी देता है?

0

विधि System.Web.UI.ScriptManager.RegisterClientScriptBlock आंतरिक विधि System.Web.UI.ScriptRegistrationManager.RegisterClientScriptBlockcontrol.Page.ClientScript.RegisterClientScriptBlock का हवाला System.Web.UI.ClientScriptManager.RegisterClientScriptBlock करने के लिए एक कॉल करने के लिए पैरामीटर नियंत्रण का उपयोग करता है करने के लिए पर्दे के पीछे कहते हैं।

तो, वास्तव में आपके द्वारा कॉल इस तरह कर रही है:

MyScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertScript", "alert('hi')", true); 

यह समान है बुला रहे हैं:

this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "alertScript", "alert('hi')", true);   

प्रकार पैरामीटर काम आता है जब दो अलग अलग प्रकार के साथ स्क्रिप्ट रजिस्टर करने के लिए कोशिश कर रहा है समान स्ट्रिंग कुंजी।

+0

तो स्क्रिप्ट अद्वितीय क्या बनाता है? चाबी ? या प्रकार के साथ कुछ और संयोजन? और क्यों निर्माता मुझे नियंत्रण और प्रकार टाइप करना चाहता है ?? क्या आप वास्तविक जीवन परिदृश्य दे सकते हैं? –

+0

विधि 'System.Web.UI.ClientScriptManager.RegisterClientScriptBlock' पैरामीटर प्रकार और कुंजी के मानों के आधार पर आंतरिक रूप से एक नई कुंजी उत्पन्न करता है। –

+0

क्या होता है जब दो अलग-अलग प्रकार समान स्ट्रिंग कुंजियों के साथ स्क्रिप्ट पंजीकृत करने का प्रयास करते हैं? –

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