Problem with ScriptManager and ASP.NET AJAX Timer -
मेरे ASP.NET AJAX अनुप्रयोग के साथ मुझे एक गंभीर समस्या है।
एक जावास्क्रिप्ट है मेरे आवेदन में समारोह Timer_Tick घटना के बाद निष्पादित करने की आवश्यकता है इसके पीछे कोड है:
शून्य सेटवेल्ज़ () {try {StringBuilder sbScript = new StringBuilder ()) SbScript.Append ("& lt; स्क्रिप्ट भाषा = 'जावास्क्रिप्ट' प्रकार = 'टेक्स्ट / जावास्क्रिप्ट' & gt;"); SbScript.Append ("फ़ंक्शन अपडेट वैल्यू () {"); के लिए (इंट जे = 0; जे एंड एलटी; iTotalDevices; j ++) {sbScript.Append ("सेटएलेमेंटवैल्यू (" + j.ToString () + "," + उपकरणइन्फो [जे] .X.ToString () + "," + + उपकरणइन्फो [जे] .Y.ToString () + "," + iStatus.ToString () + "," + डिवाइसइन्फ़ो [जे] .डिवाइसआईड.ToString () + ");"); } SbScript.Append ("}"); sbScript.Append ( "& lt; / स्क्रिप्ट & gt;"); ScriptManager.RegisterStartupScript (यह, यह। GetType (), "myscript", sbScript.ToString (), गलत); } पकड़ {}} संरक्षित शून्य टाइमर 1 वोल्ट (ऑब्जेक्ट प्रेषक, इवेंटएआरजीएस ई) {///} इस फ़ंक्शन को डेटाबेस GetNewData () से नवीनतम मान मिलेगा; SetValues (); }
जब मैं पहली बार जावास्क्रिप्ट फंक्शन 'अपडेट वैल्यू' (ऑनलोड पेज इवेंट) पर कॉल करता हूं, तो यह सही ढंग से काम करता है। लेकिन टाइमर-टिट की घटना के बाद, यह कुछ नहीं करता। यह HTML कोड है:
& lt; script type = "text / javascript" language = "javascript" & gt; फ़ंक्शन PageLoad () {/// कॉल पहली बार के लिए समारोह और यह UpdateValue () काम करता है; } Function setElementValue (सूचकांक, मान 1, मान 2, मान 3 ...) {/ वस्तु ऑब्जेक्ट सरणी में प्रत्येक तत्व के लिए सेट मान} & lt; / script & gt; & Lt; बॉडी ऑनलोड = "पेजलोड ()" & gt; & Lt; asp: ScriptManager id = "ScriptManager1" runat = "server" / & gt; & Lt; एएसपी: टाइमर आईडी = "टाइमर 1" रनैट = "सर्वर" ऑनटिक = "टाइमर 1 टिकट" अंतराल = "30000" & gt; & Lt; / body & gt;
ScriptManager या Timer_Tick घटना के साथ क्या समस्या है?
बहुत धन्यवाद,
ऐसा लगता है कि आप हर बार टाइमर 1 डाइट कार्यान्वित करते समय अद्यतन वैल्यू फ़ंक्शन दर्ज कर रहे हैं।
अपने SetValues फ़ंक्शन को इसे बदलने का प्रयास करें:
शून्य सेटवेल्ज़ () {try {stringbuilder sbScript = new stringbuilder (); SbScript.Append ("& lt; स्क्रिप्ट भाषा = 'जावास्क्रिप्ट' प्रकार = 'टेक्स्ट / जावास्क्रिप्ट' & gt;"); के लिए (इंट जे = 0; जे एंड एलटी; iTotalDevices; j ++) {sbScript.Append ("सेटएलेमेंटवैल्यू (" + j.ToString () + "," + उपकरणइन्फो [जे] .X.ToString () + "," + + उपकरणइन्फो [जे] .Y.ToString () + "," + iStatus.ToString () + "," + डिवाइसइन्फ़ो [जे] .डिवाइसआईड.ToString () + ");"); } SbScript.Append ("& lt; / script & gt;"); ScriptManager.RegisterClientScriptBlock (यह, यह। GetType (), string.Format ("myscript {0}", दिनांकटाइम.Now.ToString ("yyyyMMDHHmmss")), sbScript.ToString (), झूठी); } पकड़ {}}
संपादित करें: नोटिस कि मैं RegisterStartupScript के बजाय RegisterClientScriptBlock का उपयोग कर रहा हूँ इसके अलावा, "myscript" एक अनोखी कुंजी होनी चाहिए, इसलिए मैंने उस हिस्से को अभी अपडेट किया।
Comments
Post a Comment