2010-04-29 15 views
9

मेरे पास एक एएसपीनेट एप्लिकेशन (सी #) है।क्रोम बैक बटन पेज रीफ्रेश करें - एएसपीनेट

एक उपयोगकर्ता एक विशिष्ट पृष्ठ पर है, वे यह पेज है कि उन्हें एक बच्चे के पृष्ठ पर ले जाता पर एक लिंक पर क्लिक करें, उत्पाद विवरण प्रदर्शित।

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

बैक बटन को अक्षम करना एक विकल्प नहीं है।

मुझे केवल कुछ पृष्ठों पर इसकी आवश्यकता है।

IE और Firefox में मैं एक मुद्दा बिना इस काम कर प्राप्त कर सकते हैं। लेकिन क्रोम के साथ टेक्स्टबॉक्स में अभी भी छुपे हुए फ़ील्ड के रूप में उनके मान होते हैं। अगर मैं क्रोम में CTRL-F5 दबाता हूं, तो पृष्ठ अपने प्रारंभिक स्थिति में सही ढंग से रीसेट हो जाता है।

यह वह कोड है जिसे मैंने आजमाया है।

<%@ OutputCache Location="None" VaryByParam="None" %> 

और इस:

Response.Buffer = true; 
    Response.Cache.SetCacheability(HttpCacheability.NoCache); 
    Response.Cache.SetAllowResponseInBrowserHistory(false); 
    Response.Cache.SetNoStore(); 

और इस:

Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1)); 
    Response.Cache.SetValidUntilExpires(false); 
    Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches); 
    Response.Cache.SetCacheability(HttpCacheability.NoCache); 
    Response.Cache.SetNoStore(); 

मैं भी विभिन्न संयोजन में इन की एक किस्म की कोशिश की है, लेकिन कोई सफलता के साथ।

धन्यवाद

+0

आपने किस क्रोम को यह से आजमाया था? देव? बीटा? स्थिर? विंडोज? – bzlm

उत्तर

0

'जानवर बल' समाधान पेज पेज पर लोड कुछ ज्ञात राज्य के लिए डेटा सेट पर कुछ जावास्क्रिप्ट डाल करने के लिए किया जाएगा। तो यह सभी तत्वों को पाता है और डेटा या जेसन ऑब्जेक्ट की सरणी के आधार पर डेटा सेट करता है। प्रारंभिक अनुरोध पर, चूंकि सबकुछ किसी भी तरह से डिफॉल्ट किया गया है, इसलिए सेटिंग कोई फर्क नहीं पड़ता है। बैक बटन अनुरोध पर, चूंकि जावास्क्रिप्ट को अभी भी चलाना है, यह ब्राउज़र के बावजूद सभी मानों को रीसेट करता है।

मैं, आप जिस तरह से आप हालांकि वर्णन में कार्य करने के लिए एक ब्राउज़र मजबूर कर सकते हैं पर विश्वास नहीं है के रूप में यह प्रत्येक ब्राउज़र कि वे किस तरह एक वापस बटन लागू करना चाहते हैं पर निर्भर करता है - क्रोम बस इसे दूसरे तरीके से करता है।

6

जब ब्राउज़र के वापस बटन दबाया जाता है, इनपुट क्षेत्रों ब्राउज़र द्वारा स्वचालित रूप से रीसेट नहीं कर रहे हैं। इसके बजाए, ब्राउज़र उपयोगकर्ता के इनपुट को बरकरार रखता है, जिससे उपयोगकर्ताओं को वापस जाने और इनपुट में बदलाव करना आसान हो जाता है।

आप इस सर्वर साइड समाधान नहीं कर सकते, क्योंकि ब्राउज़र इस के लिए कैश नजरअंदाज। इसके बजाए, आप ब्राउज़र क्षेत्र द्वारा बनाए रखने से रोकने के लिए इनपुट फ़ील्ड पर autocomplete="off" HTML विशेषता का उपयोग कर सकते हैं।

आप मैन्युअल रूप रीसेट कर सकते हैं जावास्क्रिप्ट का उपयोग:

document.getElementById("form1").reset(); 
+1

धन्यवाद। यह स्पष्ट नहीं करता है कि क्यों Ie और फ़ायरफ़ॉक्स रीफ्रेशिंग प्रतीत होता है लेकिन क्रोम नहीं। – SetiSeeker

+0

यह मुझे लगता है कि Google लोगों द्वारा एक डिजाइन पसंद है। मुझे अभी भी खुशी है कि वे कामकाज के रूप में 'स्वत: पूर्ण' विशेषता का समर्थन करते हैं। – Prutswonder

+0

यह देवताओं के लिए क्रोम का एक बुरा "फीचर" है। मुझे यह समझने में उम्र लग गई कि मेरे गतिशील रूप में क्या हो रहा था (उपयोगकर्ता नई पंक्तियां जोड़ सकते हैं जो सबमिट पर डीबी में सहेजे जाते हैं)। "बैक" पर, क्रोम पहले जोड़े गए पंक्तियों के डीबी आईडी को भर नहीं पाएगा (भले ही मेरा ऐप एचटीएमएल में इसे आउटपुट कर रहा हो), इसलिए मेरे ऐप ने सोचा कि वे सभी नए थे और उन्हें आगे सबमिट करने पर डुप्लिकेट किया गया था। 'autocomplete =" off "' चाल है, हालांकि। – theyetiman

2

इन दो पंक्तियों को मेरे लिए क्रोम समस्या हल:

Response.Cache.SetCacheability(HttpCacheability.NoCache); 
Response.Cache.SetNoStore(); 

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

Response.Cache.SetAllowResponseInBrowserHistory(true); 

सूत्रों का कहना है:

Most popular answer in this post

Optional line

0

तुम भी स्वत: पूर्ण = हर इनपुट क्षेत्र के बजाय प्रपत्र टैग पर "बंद" डाल सकते हैं।

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