2009-12-30 15 views
17

में कोड डालने के लिए मैं एक वेब उपयोगकर्ता नियंत्रण (.ascx) के अंदर काम कर रहा हूं जो एक नियमित वेब फॉर्म (.aspx) में शामिल होने जा रहा है, लेकिन मुझे गतिशील रूप से सम्मिलित करने में सक्षम होना चाहिए उपयोगकर्ता नियंत्रण से दस्तावेज़ के सिर में कोड। मेरे कोल्डफ्यूजन दिनों में <cfhtmlhead> चाल करेगा। क्या एएसपी.नेट या इसी तरह की हैक में इसका बराबर है?एएसपी.नेट गतिशील रूप से कोड

+0

नीचे दिए गए उत्तर सभी को runat = "server" विशेषता वाले शीर्षलेख पर भरोसा करते हैं, अन्यथा पृष्ठ। हैडर शून्य है। – user420667

उत्तर

29

HTML मार्कअप आप निम्न कर सकते जोड़ने के लिए:

अपने UserControl के कोड में आप Page.Header उपयोग कर सकते हैं, जो अपने आप में एक नियंत्रण है। कि नियंत्रण करने के लिए आप फिर नए नियंत्रण जोड़ सकते हैं:

HtmlGenericControl newControl = new HtmlGenericControl("someTag"); 
newControl.Attributes["someAttr"] = "some value"; 
Page.Header.Controls.Add(newControl); 

स्क्रिप्ट मार्कअप को जोड़ने के लिए आप हेड टैग बिल्कुल के बाद से ASP.NET ClientScriptManager कि आपके लिए काम करने पर सहायक तरीकों है के लिए उपयोग की जरूरत नहीं है:

// Register some inline script: 
Page.ClientScript.RegisterClientScriptBlock(GetType(), "myAlertScript", "alert('hello!')", true); 

// Register a script reference: 
Page.ClientScript.RegisterClientScriptInclude(GetType(), "myLibraryScript", "~/Scripts/MyScriptLibrary.js"); 
+2

मैं दस्तावेज़ के शीर्ष पर कुछ जावास्क्रिप्ट जोड़ने की कोशिश कर रहा हूं। – Kyle

+0

धन्यवाद, दूसरी विधि मेरे लिए सबसे अच्छा काम करने लगती है। – Kyle

9
this.Page.Header.Controls.Add 

ऐसा करके, आप मुख्य अनुभाग में नियंत्रण जोड़ रहे हैं। आप किसी भी प्रकार का नियंत्रण जोड़ सकते हैं। यदि आपको लगता है कि आपको सरल टेक्स्ट जोड़ने की आवश्यकता है (या आप मैन्युअल रूप से टैग लिखना चाहते हैं), तो LiteralControl कक्षा में देखें।

2

वहाँ पृष्ठ पर शीर्ष लेख here संशोधित करने के लिए सी # कोड का उपयोग करने पर कुछ मार्गदर्शन है:

यहाँ कुछ कोड आप भी अपने उपयोगकर्ता नियंत्रण के कोड में डाल सकते हैं के उदाहरण हैं। यह किसी भी सर्वर-साइड कोड से ठीक काम करना चाहिए जो पेज लोड पूर्ण होने से पहले निष्पादित होता है।

एक साधारण उदा।

HtmlHead head = Page.Header; 
HtmlTitle title = new HtmlTitle(); 
title.Text = "Test Page"; 
head.Controls.Add(title); 

HTMLHead संदर्भ नाम स्थान में

System.Web.UI.HtmlControls 

अवहेलना कस्टम नियंत्रण के लोड() नियंत्रण या संदर्भ है, जबकि माता-पिता .aspx पेज सर्वर लोड किया जा रहा है आप पृष्ठ पर शीर्ष लेख में की जरूरत है जोड़ने के लिए विधि है पक्ष।

0

मेरे पास इसका एक आसान समाधान है। पृष्ठ के यूआरएल (एक कुंजी के रूप में) के आधार पर एक रनटाइम मेमोरी कैश बनाएं जिसमें y के बारे में एक्स जानकारी हो (चाहे वह फ़ाइल संदर्भ, स्क्रिप्ट टेक्स्ट हो या जावास्क्रिप्ट उत्पन्न करने वाली कक्षा हो) और JSON पर अपना डेटा क्रमबद्ध करें। न्यूटॉन्सॉफ्ट किसी भी वर्ग के उदाहरणों के लिए सहायक है। वास्तव में, आप दिए गए इनपुट के आधार पर कक्षा के किसी भी नए उदाहरण को आरंभ करने के लिए इसका आउटपुट उपयोग कर सकते हैं। एक तरह से, इसका मतलब है कि उपयोगकर्ता के नियंत्रण को नियंत्रित करने के बावजूद आपके पास किसी विशेष वर्ग के आपके इंस्टॉलेशन स्वचालित रूप से तत्काल हो सकते हैं। अंत में, आप स्क्रिप्ट संदर्भ के रूप में और अंतिम अंतराल के रूप में कार्य करने के लिए एक सरल वेब फ़ॉर्म बनाते हैं। यह जावास्क्रिप्ट खींचता है (या यह क्या है) और क्लाइंट साइड कोड को थूकता है जिसे आपको हेड टैग के अंदर एक स्क्रिप्ट संदर्भ के रूप में चाहिए।

10

मुझे एहसास है कि यह एक पुराना सवाल है, लेकिन यह एक और उदाहरण है।

इस प्रयास करें: जहां सूचकांक 0 <head>

इसके अलावा के शीर्ष के बराबर होती है

Page.Header.Controls.Add(
    new LiteralControl(
     "<script>alert('Literal Added to <Head>.');</script>" 
    ) 
); 

आप

AddAt(index, new LiteralControl(...)) उपयोग कर सकते हैं आप <head> की एक विशेष सूचकांक में स्क्रिप्ट जोड़ना चाहते हैं , आपको अपने सिर टैग में runat="server" जोड़ने की आवश्यकता है <head id="head1" runat="server">

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