2009-02-01 12 views
17

विशेष रूप से jQuery में शामिल स्क्रिप्ट संदर्भ, व्यूस्टेट के बाद प्रस्तुत किए जा रहे हैं। < हेड> में इसे पाने का कोई तरीका है?पेज कैसे प्राप्त करें। क्लाइंटस्क्रिप्ट। रजिस्ट्रार क्लाइंटस्क्रिप्ट सिर में शामिल करने के लिए शामिल करें?

Page.ClientScript.RegisterClientScriptInclude("jQuery", "/scripts/jquery.js"); 

मैं उपयोगकर्ता नियंत्रण पृष्ठ लोड में jquery.js को पंजीकृत करने का प्रयास कर रहा हूं।

अग्रिम धन्यवाद!

पीएस यदि यह नहीं किया जा सकता है (क्लाइंटस्क्रिप्ट के साथ), किसी को भी पता है कि उन्होंने इसे क्यों नहीं बनाया?

अद्यतन

ClientScript प्रबंधक की आवश्यकता की मुख्य विशेषता की क्षमता एक बार एक स्क्रिप्ट शामिल करने के लिए ही है। नियंत्रण पृष्ठ पर कई बार प्रदर्शित हो सकता है, लेकिन मुझे केवल एक jQuery स्क्रिप्ट शामिल है

उत्तर

22

सीधे inlcude को HEAD में:

HtmlGenericControl Include = new HtmlGenericControl("script"); 
Include.Attributes.Add("type", "text/javascript"); 
Include.Attributes.Add("src", sInclude); 
this.Page.Header.Controls.Add(Include); 

आप यह सुनिश्चित करने के लिए जांचना चाहते हैं कि यह पहले से जोड़ने से पहले नहीं है।

+0

प्लेसहोल्डर को छोड़कर मैंने एक और पूरी तरह से वैध विधि का उपयोग किया। –

+0

धन्यवाद ग्लेन्युलर, जो विशिष्टता की जांच करता है, क्लाइंटस्क्रिप्ट – ccook

+0

का बहुत उपयोगी संघर्ष करने के बाद उपयोगी बिट लगता है। यह सही जवाब है। – siddhusingh

8

मुझे कुछ समय पहले यह समस्या थी, और मैं RegisterClientScriptInclude का उपयोग नहीं कर पाया।

मैंने पृष्ठ के शीर्षलेख में प्लेसहोल्डर रखा, और प्लेसहोल्डर को स्क्रिप्ट टैग को HtmlGenericControl के माध्यम से जोड़ा।

मैं देखता हूं कि मुझे अपना कोड मिल सकता है और मैं इसके साथ अपना जवाब संपादित करूंगा।

संपादित

मैं अपने कोड नहीं मिल सकता है, तो मैं बस इसे फिर से बनाया:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <asp:PlaceHolder runat="server" ID="HeadPlaceHolder"></asp:PlaceHolder> 
</head>  
<body> 
    ... 
</body> 
</html> 

और पीछे कोड:

protected void Page_Load(object sender, EventArgs e) 
{ 
    HeadPlaceHolder.Controls.Add(/* Your control here */); 
} 
+0

धन्यवाद! हाँ, मैं जो कुछ भी पढ़ रहा हूं वहां संकेत मिलता है कि यह सिर में नहीं रेंगा। – ccook

+0

यह सही था - प्लेसहोल्डर स्क्रिप्ट का पता लगाने के लिए उपयोगी है जहां आप सिर में चाहते हैं, मुख्य रूप से केवल स्वच्छता के लिए। मैंने स्टाइलशीट के लिए एक अलग इस्तेमाल किया। Page.Header.Controls.Add दृष्टिकोण केवल अंत में जोड़ता है, इसलिए सब कुछ अंतःस्थापित हो जाता है। प्लेसहोल्डर के साथ, स्क्रिप्ट को समूहीकृत किया जाता है; स्टाइलशीट समूहबद्ध हैं। – goodeye

1

ऐसा लगता है कि पृष्ठ के शीर्षलेख पर स्क्रिप्ट जोड़ने के लिए पेज. क्लाइंटस्क्रिप्ट का उपयोग करना संभव नहीं है।

3

हे, पुराना सवाल, लेकिन हो सकता है कि यह अभी भी किसी के लिए ब्याज है।

मैं .NET 3.5sp1 के साथ अपना स्वयं का UserControl बना रहा हूं, उसी समस्या में भाग गया। निम्नलिखित समाधान मेरे लिए काम करता है।

इस कोड UserControl वर्ग से है:

protected void Page_Init(object sender, EventArgs e) 
{ 
    const string scriptKey = "UserControlScript"; 

    if(!Page.ClientScript.IsClientScriptIncludeRegistered(Page.GetType(), scriptKey)) 
    { 
     Page.ClientScript.RegisterClientScriptInclude(Page.GetType(), scriptKey, ResolveClientUrl("~/js/UserControl.js")); 
    } 
} 

मैं Page_Init इस्तेमाल किया क्योंकि मैं कुछ और सक्रियण से पहले नेस्टिंग पेज के Page_Load कहा जाता है किया जा सकता है कि क्या करने की जरूरत।

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

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