2009-04-15 12 views
15

मेरे पास एक एएसपी.NET बटन है लेकिन हाल ही में, मैंने इसे एक मानक HTML बटन से बदल दिया है ... मुझे एक एएसपी.NET पृष्ठ पर एक पोस्टबैक करना है और यह सुनिश्चित करना है कि एक विधि कहा जाता है।एएसपी.NET पोस्टबैक?

पिछले बटन एक ASP.NET बटन था, इसलिए मैं इस घटना थी:

Protected Sub btnCancelar_Click(ByVal sender As Object, ByVal e As System.EventArgs) 
    UtilTMP.DisposeObjects() 
    Server.Transfer("~\Forms\test.aspx", True) 
End 

लेकिन मैं एक जावास्क्रिप्ट चेतावनी के साथ एक बटन का उपयोग कर रहा था और मैं हाल ही में एक jQuery यूआई मॉडल संवाद करने के लिए बदल लेकिन यह नहीं करता है मेरे प्रश्न का उत्तर देने के लिए प्रतीक्षा न करें .. पोस्टबैक तत्काल होता है ... इसलिए मैंने एक मानक HTML बटन में बदलने का फैसला किया ... लेकिन मुझे एएसपी.नेट पेज पर पोस्टबैक करने की आवश्यकता है और इस तरह की एक विधि कॉल करें।

मैं सिर्फ postback अगर यह सफाई

Protected Sub Cleanup() 
    UtilTMP.DisposeObjects() 
    Server.Transfer("~\Forms\test.aspx", True) 
End 
+0

यदि आप Google से इसे पूरा करते हैं तो मेरा उत्तर देखें। (पोस्ट में से कोई भी मेरे लिए काम नहीं करता है)। –

उत्तर

6

जबकि आप JQuery के साथ पोस्टबैक कर सकते हैं, तो हम एक कॉल करना बेहतर हो सकते हैं बी विधि (वेब ​​सेवा जो आपके पृष्ठ में है)। कॉल भी तेज़ हो सकता है क्योंकि आप संपूर्ण पृष्ठ व्यूस्टेट पोस्ट नहीं कर रहे हैं।

+4

यह काम करेगा, लेकिन वहां है पोस्टबैक के साथ ऐसा करने का एक तरीका है, इसलिए आपको वेब सेवा विधि घोषित करने की आवश्यकता नहीं है। –

+0

FWIW, क्रोम उस URL पर एक मैलवेयर चेतावनी दिखाता है – dlchambers

+0

लिंक अब काम नहीं करता है। क्रोम ने मुझे नहीं लिया क्योंकि साइट में स्पष्ट रूप से मैलवेयर – Ortund

4

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

0

आप जो भी जेएस बटन ऑनक्लिक घटना से जुड़ा हुआ है, उसके साथ पोस्टबैक को रोकने में सक्षम होना चाहिए, भले ही यह वेबकंट्रोल या स्टैंडअल एचटीएमएल बटन है, झूठी लौटकर।

उदा। <input type="image" id="test" onclick="doWhatever();return false;" />

15

देखें कि यह मदद करता है: http://www.codeproject.com/KB/aspnet/sample.aspx

<a id="anchorId" runat="server" onclick="return true" onserverclick="foo"></a> 

के पीछे अपने कोड में, आप एक foo प्रणाली की घोषणा करने की जरूरत है:

मूल रूप से, आप एक डमी एंकर टैग घोषित

protected void foo(object sender, EventArgs e) 
{ 
    // Do something here 
} 

तो फिर तुम इस के साथ इस लंगर का onclick समारोह आह्वान कर सकते हैं जावास्क्रिप्ट:

document.getElementById('anchorId').click() 
+0

या यह एक और विकल्प है: http://blogs.microsoft.co.il/blogs/gilf/archive/2008/10/04/asp-net-ajax-pagemethods.aspx – David

4

इस लेख को देखें

http://www.deviantpoint.com/post/2009/03/12/Using-jQuery-UI-Dialogs-for-confirmation-windows.aspx

मूल विचार आप कॉल एक छिपी हुई फ़ील्ड में समारोह वापस जगह है और उस में काम करने के लिए $(this).dialog('close');

मैं इस प्रयोग किया जाता है पर एक eval चलाया जाता है एक ग्रिडव्यू, इसलिए यदि आप जानना चाहते हैं कि ऐसा कैसे करें, तो कोई टिप्पणी छोड़ दें।

0

मैं इस पोस्ट में Google के माध्यम से आया था इसलिए मुझे संदेह है कि अन्य भी होंगे। मैंने यहां विधियों की कोशिश की जो मेरे लिए काम नहीं करते थे। मैं अपने समाधान की व्याख्या करूंगा, लेकिन पहले मैं जो करने की कोशिश कर रहा हूं उसका एक अवलोकन।

मेरे पास एक ऐसा फॉर्म है जो मेरे webservice पर डेटा पोस्ट करने के लिए jQuery AJAX का उपयोग करता है जो बदले में मेरे डेटाबेस को अपडेट करता है।मेरे पास एक छवि अपलोड फॉर्म है, सुरक्षा कारण के लिए आप webservice को पास करने के लिए AJAX कॉल में उपयोग करने के लिए पूर्ण फ़ाइल पथ नहीं प्राप्त कर सकते हैं ... इसलिए इसे नियमित एएसपीनेट पोस्टबैक के साथ किया जाना है। तो मेरी दुविधा दोनों कैसे करें। मैंने जो किया वह डेटाबेस को अद्यतन करने के लिए मेरे AJAX फ़ंक्शन का उपयोग करता था, एक बार जब मैं webservice से सफलता प्राप्त करता हूं तो मैं कोडबेंड में किसी निश्चित विधि पर पोस्टबैक करने के लिए फॉर्म बताता हूं और फिर कहीं भी रीडायरेक्ट करता हूं। $("#Button1").click(function() { javascript: __doPostBack('ctl00$ContentPlaceHolder1$atest', '') });

यह अनिवार्य रूप से वास्तव में के बजाय छोड़कर एक asp.net नियंत्रण के लिए एक क्लिक समारोह बताए, बटन मैं जावास्क्रिप्ट कह रहा हूँ यह निष्पादित करने के लिए क्लिक करने के समान है। atest वह आईडी होगी जिसे मैंने एएसपीनेट नियंत्रण में असाइन किया था।
नोट: <%=myclientid.ClientID %> यहां काम नहीं करेगा।

+1

<% = myclientid.ClientID%> काम नहीं करता है, लेकिन <% = myclientid.UniqueID%> करता है। –