2008-11-19 13 views
5

मैं एक पृष्ठ के माध्यम से किसी पृष्ठ में उपयोगकर्ता वेब नियंत्रण के साथ जावास्क्रिप्ट कोड लोड करने का प्रयास कर रहा हूं। एक अद्यतन पैनल के एसिंक्रॉन पोस्ट के दौरान लोडकंट्रोल विधि।एएसपी.NET अद्यतन पैनल में घोंसला वाले उपयोगकर्ता नियंत्रण में जावास्क्रिप्ट इंजेक्ट करें

मैंने विशेष रूप से उस परिदृश्य के लिए स्क्रिप्ट प्रबंधक के डिज़ाइन किए गए तरीकों के लिए प्रयास किया है, लेकिन जावास्क्रिप्ट उपयोगकर्ता को वापस नहीं लौटाता है।

थोड़ा बेहतर मेरी परिदृश्य व्याख्या करने के लिए:

मास्टर पृष्ठ स्क्रिप्ट प्रबंधक है और एक पृष्ठ एक async पद वापस दौरान Page.LoadControl-विधि के माध्यम से उपयोगकर्ता नियंत्रण लोड करता है। प्रीरेंडर इवेंट हैंडलर जावास्क्रिप्ट में कस्टम नियंत्रण इंजेक्ट करता है। क्या यह जेएस इंजेक्ट करने का समय है या ऐसा करना संभव नहीं है?

आशा है कि किसी के पास इसका कोई विचार होगा। पहले से ढेर धन्यवाद, derSteve

उत्तर

3

कि के लिए आप क्या कर सकते हैं

string scr; 
scr = "<script src='/scripts/myscript.js'></script>" 
Page.ClientScript.RegisterStartupScript(GetType(Page), "key", scr, false) 

HTH

2

अपने की कोशिश की है

Page.ClientScript.RegisterStartUpScript(GetType(Page), "key", <your script here>, addSctiptTags:=true) 

हम अपने उपयोगकर्ता नियंत्रण में करने के लिए और हमें

HTH

2

आप की RegisterStartupScript विधि का उपयोग कर सकते हैं के लिए यह काम करता है स्क्रिप्ट मैनेजर क्लास निष्पादन योग्य स्क्रिप्ट इंजेक्ट करने के लिए:

public partial class WebUserControl : System.Web.UI.UserControl 
{   
    protected void Page_PreRender(object sender, EventArgs e) 
    { 
     ScriptManager.RegisterStartupScript(this, GetType(), ClientID, "alert(1)", true); 
    } 
} 
+2

मुझे यह सिंक्रोनस पोस्टबैक के साथ ही काम करता है, न कि अतुल्यकालिक अद्यतन पैनेल-पोस्टबैक के साथ। क्या मैं कुछ भूल रहा हूँ? –

3

आप अपने जावास्क्रिप्ट हार्ड-कोड नहीं करना चाहते, लेकिन बजाय एक फ़ाइल से इसे शामिल हैं, ScriptManager.RegisterClientScriptInclude फोन और उसके बाद अपने प्रारंभ फ़ंक्शन को कॉल करें ScriptManager.RegisterStartupScript में। यदि आपका नियंत्रण एक asp.net मोडल पॉपअप में नीडिंत है

protected void Page_Load(object sender, EventArgs e) 
{ 
    ScriptManager.RegisterClientScriptInclude(
     this, GetType(), "formatterScript", ResolveUrl("~/js/formatter.js")); 
    ScriptManager.RegisterStartupScript(
     this, GetType(), "formatTableFunction", "formatTable()", true); 
} 
1

Page_PreRender घटना में RegisterStartupScript लाना कार्य न करें। इसके बजाय, इसे पेज_लोड में रखें जब IsPostBack = गलत है।

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