2011-03-27 12 views
17

क्या यह __doPostBack() का उपयोग करना ठीक है या इसकी अनुशंसा नहीं की जाती है क्योंकि यह एएसपी.NET से उत्पन्न होता है और हमें यकीन नहीं है कि क्या उन्होंने इसे ASP.Net के अगले संस्करण में बदल दिया है।क्या यह __doPostBack() का उपयोग करना ठीक है?

उत्तर

17

मैं इसके खिलाफ सलाह दूंगा, क्योंकि यह ASP.NET की आंतरिक सामग्री है और इसका उपयोग सीधे कभी नहीं किया जाना था।

इसके बजाय, मैं क्या कर रहा हूँ जब मैं करने के लिए "मैन्युअल" ट्रिगर PostBack छिपा "सर्वर साइड" बटन उचित OnClick साथ जोड़ रहा है की जरूरत है:

<asp:Button id="btnDummy" runat="server" OnClick="Foo" style="display: none;" /> 

तब जे एस है:

document.getElementById("<%=btnDummy.ClientID%>").click(); 

इस तरह मुझे परवाह नहीं है कि पोस्ट बैक होता है, मैं बस घटनाओं के प्राकृतिक प्रवाह को ट्रिगर करता हूं।

8

आपको इसे सीधे कॉल नहीं करना चाहिए। आप जैसे Page.ClientScript में कार्यों का उपयोग करके javascript कॉल उत्पन्न करनी चाहिए:

इससे यह सुनिश्चित होगा कि यह हमेशा संगत है।

1

वे शायद इसे नहीं बदलेंगे, लेकिन इसे सीधे क्यों कहते हैं?
मुझे लगता है कि यह ईवेंट ट्रिगर करने के लिए एक बेहतर रणनीति है (उदाहरण के लिए एक बटन क्लिक करें) और नियंत्रण को पोस्टबैक ट्रिगर करने दें।

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

1

मुझे लगता है कि यह सीधे उपयोग करने के लिए बिल्कुल ठीक है, और बिना किसी असफलता के इसका उपयोग किया है, यह सिर्फ एक जावास्क्रिप्ट फ़ंक्शन है।

+0

हां, यह "सिर्फ एक जावास्क्रिप्ट फ़ंक्शन" है, लेकिन समस्या यह है कि कोई * गारंटी * नहीं है कि यह अगले संस्करण में उपस्थित रहेगी। –

0

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

__doPostBack('%=UpdatePanel.ClientID%>','MyData') 
कुछ मामलों में

बुला पाते हैं।

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