2009-06-30 13 views
11

के पोस्टबैक से पहले जावास्क्रिप्ट फ़ंक्शन कैसे चलाएं मेरे पास एक एएसपीनेट बटन है जो रनैट सर्वर है, वहां एक फ़ंक्शन हैंडल है जो बटन ऑनक्लिक है।एएसपीनेट बटन

सर्वर प्रक्रिया में जाने से पहले मैं पृष्ठ में "loading ..." शब्द कैसे प्रदर्शित कर सकता हूं?

उत्तर

3

ऑनक्लिएंटक्लिक पर देखें, आप किसी जेएस फ़ंक्शन में कॉल जोड़ सकते हैं, या वहां जेएस इनलाइन कर सकते हैं।

या आप JQuery के साथ बटन में वायर कर सकते हैं और एसिंक कॉलबैक के साथ एक मोडल संवाद प्रदर्शित कर सकते हैं।

20

कुछ जावास्क्रिप्ट फ़ंक्शन के लिए OnClientClick को हुक अप करें जो सत्य या गलत लौटाता है। पोस्टबैक तब होता है जब यह सत्य लौटाता है तो इसे रद्द कर दिया जाता है।

<asp:Button id="MyButton" runat="Server" Text="Close" 
         OnClientClick="return PromptClose();"/> 


    <script type="text/javascript"> 
    function PromptClose(){ 
     return prompt("Do you really want to close this window?"); 
    } 
    </script> 
7

आप अपने पृष्ठ के फॉर्म onsubmit ईवेंट का उपयोग कर सकते हैं। फ़ॉर्म जमा होने से पहले ऐसा होता है, और यदि आपको बुलबुले रद्द करने की आवश्यकता होती है तो आपको फॉर्म जमा करने की अनुमति मिल जाएगी। यदि आपको इसकी आवश्यकता है, तो इस उदाहरण में अंतिम 2 पंक्तियां ब्राउज़र में बुलबुले को रद्द कर देंगी।

<form runat="server" onsubmit="ShowLoading()"> 
</form> 
<script type="text/javascript"> 
    function ShowLoading(e) { 
     var div = document.createElement('div'); 
     var img = document.createElement('img'); 
     img.src = 'http://www.oppenheim.com.au/wp-content/uploads/2007/08/ajax-loader-1.gif'; 
     div.innerHTML = "Loading...<br />"; 
     div.style.cssText = 'position: fixed; top: 30%; left: 40%; z-index: 5000; width: 222px; text-align: center; background: #fff; border: 1px solid #000'; 
     div.appendChild(img); 
     document.body.appendChild(div); 

     // These 2 lines cancel form submission, so only use if needed. 
     window.event.cancelBubble = true; 
     e.stopPropagation(); 
    } 
</script> 

उपरोक्त जावास्क्रिप्ट उदाहरण के लिए है, हालांकि यह (मेरी राय में) जो आप ढूंढ रहे हैं उसे करने का पसंदीदा तरीका है। यह कुछ इस तरह (स्क्रीन के बीच में) दिखता है:

लोड हो रहा है ...
http://www.oppenheim.com.au/wp-content/uploads/2007/08/ajax-loader-1.gif

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

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