2009-07-27 20 views
15

यहां पोस्ट किए गए कुछ समान प्रश्न हैं लेकिन कोई भी वास्तव में मेरी आवश्यकताओं को पूरा नहीं करता है।वापस बटन रीफ्रेश पृष्ठ

मेरे पास एक पृष्ठ पर वस्तुओं की एक सूची है, इसे मास्टरलिस्ट.aspx कहें। यदि मैं इन सूची आइटमों पर क्लिक करता हूं तो एक और पृष्ठ प्रकट होता है, यानी विवरण.aspx? Id = कुछ।

दिखाई देने वाला पृष्ठ संपादन मोड में एक फॉर्मव्यू नियंत्रण है। यदि उपयोगकर्ता डेटा को संपादित करना चाहता है तो उन्होंने एक संपादन लिंकबटन को दबाया है, और फ़ॉर्म को संपादन मोड में भेजा गया है, फिर वे डेटा संपादित करते हैं और सहेजें बटन पर क्लिक करते हैं, डेटा को सहेजते हैं और फॉर्मूव को वापस दृश्य मोड में डालते हैं।

समस्या यह है कि यदि उपयोगकर्ता masterlist.aspx पृष्ठ पर वापस जाने के लिए ब्राउज़र बैक बटन का उपयोग करता है तो पृष्ठ अपडेट नहीं होता है, इसे ब्राउज़र कैश से बाहर खींच लिया जाता है।

मैंने HTTP शीर्षलेख कैश सेटिंग्स के साथ खेला है लेकिन सभी प्रमुख ब्राउज़रों पर काम करने वाली कुछ भी नहीं मिल सकती है। कुछ ब्राउज़रों पर मुझे वेब पेज की समयसीमा समाप्त हो जाती है। क्लाइंट साइड कोड का उपयोग करते समय पृष्ठ लोड होने पर किसी अन्य विकल्प को पृष्ठ रीफ्रेश (या आंशिक पृष्ठ रीफ्रेश) ट्रिगर करना है, लेकिन मैं यह समझने में सक्षम नहीं हूं कि यह कैसे करें।

क्या कोई अन्य दृष्टिकोण है या कोई ऊपर दिए गए दो दृष्टिकोणों के साथ सफल रहा है, या इस मुद्दे को पूरी तरह से टालने का कोई तरीका है।

+0

ऐसा इसलिए है क्योंकि एएसपीनेट पूरे पृष्ठ वाले पोस्ट-फॉर्म का उपयोग करता है। मुझे नहीं पता कि इसे कैसे ठीक किया जाए, लेकिन यह आपकी मदद कर सकता है। –

उत्तर

31

मुझे ऐसा कैटलॉग में ऐसा कुछ करना है जहां ब्राउज पेज को प्रत्येक लोड पर डीबी से लोड किया जाना चाहिए क्योंकि जब आप कोई उत्पाद पृष्ठ दबाते हैं तो यह अद्यतन जानकारी प्राप्त करने के लिए किसी तृतीय पक्ष को कॉल करता है, और फिर सहेजता है अगर यह अद्यतन किया जाना चाहिए। ऐसा तब होता है जब आप बैक बटन दबाते हैं जैसे कि आप कह रहे हैं कि डेटा पुनः लोड हो गया है। मैंने जो किया है उसे पृष्ठ में जोड़ा गया है और ऐसा लगता है कि यह सभी ब्राउज़रों में ठीक काम करता है।

public class ProductBrowser : Page 
{ 
    protected override void OnInit(EventArgs e) 
    { 
     Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     Response.Cache.SetNoStore(); 
     Response.Cache.SetExpires(DateTime.MinValue); 

     base.OnInit(e); 
    } 
} 
+0

क्रोम में मेरे सहकर्मी के लिए काम किया और यानी 6. – Merritt

+0

इसके लिए धन्यवाद - हमने कई बार यह कोशिश की है। फ़ायरफ़ॉक्स और आईई 9 में भी काम करता है। – penderi

0

बैक बटन कीप्रेस ईवेंट को कैप्चर करने के बारे में क्या है, फिर इसे ब्राउज़र करने की अनुमति देने के बजाय .istory.back(), आप एक दस्तावेज़ कर सकते हैं। स्थान (...) कॉल।

वैकल्पिक रूप से, आप बैक इवेंट कैप्चर कर सकते हैं और पोस्ट-बैक ट्रिगर कर सकते हैं, जो एक Response.Redirect ("yourpage") कर सकता है। यह ब्राउज़र को नामित पृष्ठ के लिए एक जीईटी स्टेटमेंट जारी करने के लिए मजबूर करेगा, और इसे

0

जावास्क्रिप्ट के साथ एक पूर्ण समाधान संभव नहीं हो सकता है, लेकिन एक कामकाज है।

http://www.boutell.com/newfaq/creating/backbutton.html

यह एक समय समाप्ति समारोह है कि बार-बार ब्राउज़र बलों एक 'फॉरवर्ड' क्रिया करने के लिए उपयोग करता है। यहां तक ​​कि अगर कोई बैक बटन क्लिक करता है, तो यह वास्तविक पृष्ठ पर वापस लाएगा, जिससे बैक ऑपरेशन को रद्द किया जा सकेगा। हालांकि यह एक झिलमिलाहट का कारण बन सकता है।

+0

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

0

मैंने HTTP शीर्षलेख कैश सेटिंग्स के साथ खेला है लेकिन सभी प्रमुख ब्राउज़रों पर काम करने वाली कुछ भी नहीं मिल सकती है। कुछ ब्राउज़रों पर मुझे वेब पेज की समयसीमा समाप्त हो जाती है।

आप उस मास्टरलिस्ट पेज पर कैसे जाते हैं? यदि आप HTTP GET और जारी करते हैं तो क्लाइंट और प्रॉक्सी को कैश करने के लिए रोकें, आपको इसके लिए नेविगेट करने में कोई समस्या नहीं होगी (और अभी भी एक अपडेटेड संस्करण प्राप्त हो रहा है)।

जो आपको सर्वर साइड कैशिंग के साथ छोड़ देता है (जब कोई आइटम बदलता है तो उचित अमान्यता के साथ) या कोई कैशिंग नहीं है।

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