2009-02-16 13 views
15

में पोस्टबैक कार्रवाई के बाद पृष्ठ को रीफ्रेश करें मेरे पास मेरे एएसपीनेट ग्रिड में कमांड बटन जोड़ा गया है। उस बटन का उपयोग करके एक क्रिया करने के बाद, हम नए डेटा को प्रतिबिंबित करने के लिए ग्रिड को रीफ्रेश करते हैं। (मूल रूप से यह क्रिया ग्रिड पंक्ति को डुप्लिकेट करती है)।एएसपीनेट

अब उपयोगकर्ता F5 का उपयोग कर पृष्ठ को रीफ्रेश करते हैं, यदि हम "पुनः प्रयास करें" चुनते हैं तो एक चेतावनी संदेश प्रदर्शित होता है (सर्वर को जानकारी भेजना), कार्रवाई स्वचालित रूप से दोहराई जाती है।

मुझे पता है कि यह एएसपीनेट में एक आम समस्या है, हम इसे कैसे संभालेंगे?

उत्तर

32

खोज - http://en.wikipedia.org/wiki/Post/Redirect/Get - मूल रूप से, के बाद आप की प्रक्रिया पूरी कर रहे हैं वर्तमान पृष्ठ पर रीडायरेक्ट अपने घटना।

कुछ की तरह:

Response.Redirect(Request.RawUrl)

2

यदि आपको लगता है कि आपको पोस्टबैक प्रतिमान की आवश्यकता नहीं है, तो आप एएसपी.नेट एमवीसी को देखना चाहेंगे।

1

अगर मुझे अच्छी तरह से समझ में आया, तो आपको बस यह जांचना होगा कि क्या आप अपनी ग्रिड को पॉप्युलेट करने से पहले पोस्ट-बैक स्थिति में हैं या नहीं।
आप यह मानते हुए है कि Page_Load पर, बस इस तरह के बाद वापस परीक्षण के साथ आपरेशन के चारों ओर: पोस्ट के बाद प्राप्त के लिए

private void Page_Load(object sender, EventArgs e) 
{ 
    if(!this.IsPostBack) 
    { 
     // populate grid 
    } 
} 
1

आप कॉल करने की आवश्यकता Response.Redirect (Request.Url.ToString());

या आप UpdatePanel के साथ ग्रिड लपेट कर सकते हैं और हर आदेश के बाद ग्रिड

2

समस्या के लिए डेटा स्रोत के लिए बाध्य है कि asp.net बटन फ़ॉर्म पोस्ट प्रदर्शन है जब आप एक बटन पुश है। यदि आप एक लिंक के साथ बटन को प्रतिस्थापित करते हैं तो आपकी समस्या दूर होनी चाहिए। आप एक ऐसे बटन का भी उपयोग कर सकते हैं जो जावास्क्रिप्ट फ़ंक्शन करता है जो दस्तावेज़ को आपके पृष्ठ के पते पर सेट करता है।

EnableViewState="false" 

यह आपके नियंत्रण अगर यह एक पोस्टबैक है या नहीं हर बार पृष्ठ लोड हो तो कोई बात नहीं ताज़ा करने के लिए कारण होगा:

1

अपने <asp:Repeater> टैग के अंदर इस डाल दिया।

+0

किसी ने भी इस उत्तर को एक उत्तर नहीं दिया है? – slamsal

+0

मेरे लिए काम नहीं किया। – Andy

-1

उदाहरण के लिए: यदि आप 'बटन' सिस्टम पर क्लिक करते हैं तो ईवेंट 'बटन_क्लिक' को पकड़ लेगा। यदि आप पृष्ठ को रीफ्रेश करते हैं, तो सिस्टम फिर से उसी ईवेंट को निष्पादित करेगा। आपके ईवेंट पर

private void button_click(object sender, System.EventArgs e) 
{ 
    button.Enabled =false; 
    button.Enabled =true; 
} 

आप क्या मतलब है: डॉन को टी यह समस्या है, आपके घटना डालने में?

+1

यह बिल्कुल सवाल नहीं है कि सवाल क्या है। –