जावास्क्रिप्ट से ASP.NET फ़ंक्शन को कॉल करें?

मैं एएसपी.नेट में एक वेब पेज लिख रहा हूं। मेरे पास कुछ जावास्क्रिप्ट कोड है, और मेरे पास एक क्लिक ईवेंट के साथ एक सबमिट बटन है।

क्या जावास्क्रिप्ट के क्लिक ईवेंट के साथ एएसपी में बनाई गई एक विधि को कॉल करना संभव है?

0
जोड़ा संपादित
विचारों: 1
आपको कुछ अजाक्स लाइब्रेरी का उपयोग करना चाहिए जैसे: गान
जोड़ा लेखक jdecuyper, स्रोत

6 उत्तर

माइक्रोसॉफ्ट AJAX लाइब्रेरी इसे पूरा करेगा। आप अपना स्वयं का समाधान भी बना सकते हैं जिसमें AJAX का उपयोग अपने स्वयं के एएसपीएक्स (मूल रूप से) स्क्रिप्ट फ़ाइलों को .NET फ़ंक्शंस चलाने के लिए कॉल करना शामिल है।

मैं माइक्रोसॉफ्ट AJAX लाइब्रेरी का सुझाव देता हूं। एक बार स्थापित और संदर्भित हो जाने पर, आप बस अपने पृष्ठ लोड या init में एक पंक्ति जोड़ें:

Ajax.Utility.RegisterTypeForAjax(GetType(YOURPAGECLASSNAME))

फिर आप चीजें कर सकते हैं जैसे:

 _
Public Function Get5() AS Integer
    Return 5
End Function

फिर, आप इसे अपने पृष्ठ पर कॉल कर सकते हैं:

PageClassName.Get5(javascriptCallbackFunction);

आपके फ़ंक्शन कॉल का अंतिम पैरामीटर जावास्क्रिप्ट कॉलबैक फ़ंक्शन होना चाहिए जो AJAX अनुरोध लौटाए जाने पर निष्पादित किया जाएगा।

0
जोड़ा

खैर, अगर आप इसे अजाक्स या किसी अन्य तरीके से नहीं करना चाहते हैं और बस एक सामान्य एएसपी.नेट पोस्टबैक होना चाहते हैं, तो यहां यह है कि आप इसे कैसे करते हैं (किसी भी अन्य पुस्तकालयों का उपयोग किए बिना):

हालांकि यह थोड़ा मुश्किल है ...:)

मैं। आपकी कोड फ़ाइल में (मान लीजिए कि आप सी # और .NET 2.0 या बाद में उपयोग कर रहे हैं) इसे अपने पेज क्लास में निम्न इंटरफ़ेस जोड़ें जैसा दिखता है

public partial class Default : System.Web.UI.Page, IPostBackEventHandler{}

ii। इसे जोड़ना चाहिए ( टैब - टैब का उपयोग करके) यह फ़ंक्शन आपकी कोड फ़ाइल में:

public void RaisePostBackEvent(string eventArgument) { }

iii। जावास्क्रिप्ट में अपने ऑनक्लिक घटना में, निम्न कोड लिखें:

var pageId = '<%=  Page.ClientID %>';
__doPostBack(pageId, argumentString);

यह आपकी कोड फ़ाइल में 'RaisePostBackEvent' विधि को 'eventArgument' के साथ जावास्क्रिप्ट से पारित 'तर्कस्ट्रिंग' के रूप में कॉल करेगा। अब, आप अपनी पसंद की किसी अन्य घटना को कॉल कर सकते हैं।

पीएस: वह 'अंडरस्कोर-अंडरस्कोर-डूपोस्टबैक' है ... और, उस अनुक्रम में कोई जगह नहीं होनी चाहिए ... किसी भी तरह डब्लूएमडी मुझे किसी चरित्र के बाद अंडरस्कोर को लिखने की अनुमति नहीं देता है!

0
जोड़ा
मैं इसे लागू करने की कोशिश कर रहा हूं लेकिन यह सही काम नहीं कर रहा है। पृष्ठ वापस पोस्ट कर रहा है, लेकिन मेरा कोड निष्पादित नहीं हो रहा है। जब मैं पृष्ठ को डीबग करता हूं, तो RaisePostBackEvent को कभी भी निकाल दिया नहीं जाता है। एक चीज मैंने अलग-अलग की है, मैं इसे एएसपीएक्स पेज के बजाय उपयोगकर्ता नियंत्रण में कर रहा हूं।
जोड़ा लेखक merk, स्रोत
ऑब्जेक्ट अपेक्षित कहता है कि यह मुझे एक त्रुटि देता है। मैंने इसे इस तरह से बुलाया है: window.onbeforeunload = confirmExit; // डिबगर; फ़ंक्शन पुष्टिकरण() {var pageId = '<% = पृष्ठ। क्लाइंट आईडी%>'; var argumentString = 'रिलीज़ लॉक'; __do पोस्टबैक (पेजआईडी, तर्क स्ट्रिंग); }
जोड़ा लेखक Pavitar, स्रोत
किसी भी कारण से, मैं इसे onkeyup ईवेंट के साथ काम नहीं कर सका। जावास्क्रिप्ट रनटाइम त्रुटि मिली: '__doPostBack' अपरिभाषित है । मैं सी # और एएसपी.नेट 2.0 का उपयोग कर रहा हूं।
जोड़ा लेखक Andrew T., स्रोत

आप इसे .NET Ajax PageMethods का उपयोग करके असीमित रूप से कर सकते हैं। यहां या यहां

0
जोड़ा

आप अपने सामान्य तरीकों के लिए एक वेब सेवा बनाना चाहते हैं।
बस उन कार्यों पर एक WebMethodAttribute जोड़ें जिन्हें आप कॉल करना चाहते हैं, और यह इसके बारे में है।
आपकी सभी सामान्य सामग्री के साथ एक वेब सेवा होने से सिस्टम को बनाए रखना आसान हो जाता है।

0
जोड़ा

माइक्रोसॉफ्ट AJAX लाइब्रेरी इसे पूरा करेगा। आप अपना स्वयं का समाधान भी बना सकते हैं जिसमें AJAX का उपयोग अपने स्वयं के एएसपीएक्स (मूल रूप से) स्क्रिप्ट फ़ाइलों को .NET फ़ंक्शंस चलाने के लिए कॉल करना शामिल है।

यह अजाक्सप्रो नामक लाइब्रेरी है जिसे माइकल श्वार्ज़ नामक एक एमवीपी लिखा गया था। यह पुस्तकालय माइक्रोसॉफ्ट द्वारा लिखा नहीं गया था।

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

0
जोड़ा
काश यह है कि यह पोस्ट उपर्युक्त के करीब था ... मैंने यह जानने का प्रयास करने में कई मिनट उड़ाए कि क्यों एमएस दस्तावेज में उस विधि का उल्लेख नहीं किया गया था: /
जोड़ा लेखक Dave Swersky, स्रोत

__ doPostBack() विधि अच्छी तरह से काम करती है।

एक और समाधान (बहुत हैकिश) बस अपने मार्कअप में एक अदृश्य एएसपी बटन जोड़ना है और इसे जावास्क्रिप्ट विधि से क्लिक करना है।

<div style="display: none;">
   
</div>

अपनी जावास्क्रिप्ट से, अपने ClientID का उपयोग करके बटन के संदर्भ को पुनर्प्राप्त करें और उसके बाद .click() विधि को कॉल करें।

var button = document.getElementById(/* button client id */);

button.click();
0
जोड़ा
अगर मैं एक तर्क का उपयोग करना चाहता हूं तो क्या होगा? क्या मैं इसे क्लाइंट साइड से प्राप्त कर सकता हूं और इसे बटन के साथ उपयोग कर सकता हूं। क्लिक करें ()?
जोड़ा लेखक Kubi, स्रोत
क्या आप यहां देख सकते हैं? stackoverflow.com/questions/2536106/…
जोड़ा लेखक Kubi, स्रोत
क्लिक विधि मौजूद है ??
जोड़ा लेखक Saher Ahwal, स्रोत
जावास्क्रिप्ट रनटाइम त्रुटि: ऑब्जेक्ट संपत्ति या विधि का समर्थन नहीं करता है 'getElementByID' ओह एमबी आईडी के लिए जाएं: डी एफएफएस केसेंसिस्टिव बकवास
जोड़ा लेखक Ms. Nobody, स्रोत
@mbillard मैंने छिपाने के लिए एक रास्ता खोजने में काफी समय बिताया (दृष्टि से एक घटक) और बाद में मैं जावास्क्रिप्ट से एएसपी फ़ंक्शन को कॉल करने का तरीका खोजता हूं।
जोड़ा लेखक Erick Asto Oblitas, स्रोत
@Kubi सर्वर पक्ष पर एक तर्क? मैं आमतौर पर जो तर्क करता हूं वह उन तर्कों को क्रमबद्ध करता है जिन्हें सर्वर पक्ष में भेजने की आवश्यकता होती है और उन्हें एक छिपे हुए क्षेत्र में रखा जाता है।
जोड़ा लेखक mbillard, स्रोत
@saher हाँ, लेकिन यह वास्तव में है। क्लिक करें (लोअरकेस सी) ( comptechdoc। org / स्वतंत्र / वेब / cgi / javamanual / javabutton.h और जेडडब्ल्यूएनजे; टीएमएल )
जोड़ा लेखक mbillard, स्रोत