2010-10-21 16 views
5

मेरे पास एक बटन है, जो डेटाबेस में एक मूल्य अद्यतन करता है। इस मान का उपयोग यह निर्धारित करने के लिए किया जाता है कि पृष्ठ पर क्या आकर्षित करना है। पेज लाइफसाइक्ल की वजह से, पेज क्लिक विधि से पहले पृष्ठ को फिर से चलाया जाता है, जिसका अर्थ यह है कि जब तक पृष्ठ फिर से लोड नहीं हो जाता है तब तक कोई भी परिवर्तन दिखाई नहीं देता है।बटन क्लिक विधि पृष्ठ लोड के बाद चलता है, जिसका अर्थ है कि पृष्ठ अपडेट नहीं होता है, मैं इसे कैसे हल कर सकता हूं?

इसके लिए सबसे अच्छा समाधान क्या है?

स्पष्ट करने के लिए:

पृष्ठ टेक्स्ट का एक हिस्सा, का कहना है कि "मैं बिल्लियों की तरह" यदि डेटाबेस मान 1

बटन 'मैं बिल्लियों नफरत' दबाया जाता है, जो करने के लिए डेटाबेस मूल्य सेट है 0

पृष्ठ पुनः लोड, लेकिन अभी भी कहते हैं, "मैं बिल्लियों की तरह"

बटन क्लिक करें घटना नियंत्रित किया जाता है, और डेटाबेस मान 0

हो जाता है यदि पृष्ठ को रीफ्रेश/पुनः लोड किया गया है, तो अब यह सही ढंग से कहता है "मुझे बिल्लियों से नफरत है"

हालांकि बटन क्लिक होने पर अपडेट होना चाहिए।

+1

Hmm..i सुनिश्चित करें कि आप द्वारा "पृष्ठ से पहले redraws क्या मतलब है नहीं कर रहा हूँ बटन क्लिक निष्पादित किया गया है "। क्या बटन क्लिक है आप सर्वर साइड इवेंट का जिक्र कर रहे हैं? यदि ऐसा है, तो इसे पृष्ठ के ऑनरेंडर ईवेंट से पहले निष्पादित किया जाना चाहिए ... http://msdn.microsoft.com/en-us/library/ms178472.aspx – InSane

+0

मेरी समस्या को स्पष्ट करें – NibblyPig

+0

जहां वास्तव में टुकड़ा है "मुझे नफरत/प्यार बिल्लियों" प्रदर्शित करने के लिए ज़िम्मेदार कोड? – Preets

उत्तर

6

आप page prerender event का उपयोग कर सकते हैं। page lifecycle में नियंत्रण घटना के बाद यह आग।

+0

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

+0

ठंडा हो। अगर यह काम करता है तो मुझे बताएं ... – rauts

+0

यह शायद काम करेगा लेकिन चूंकि अब मैं सिर्फ नियंत्रण/छिपाने वाले नियंत्रण दिखा रहा हूं, मैं इसे पेज_लोड के साथ कर सकता हूं। आपकी मदद के लिए धन्यवाद हालांकि, यह मुझे अंत में सही जवाब दे दिया! – NibblyPig

0

आप डेटाबेस कहां से पूछ रहे हैं? एक आसान विकल्प केवल पृष्ठ पर Response.Redirect का उपयोग करना होगा।

मुझे लगता है कि आप बटन विधि से परिणाम प्राप्त कर सकते हैं और केवल लेबल/शाब्दिक अपडेट कर सकते हैं।

0

एक संभावित समाधान एक जावास्क्रिप्ट फ़ंक्शन निष्पादित करना है जो डेटाबेस को अद्यतन करता है (AJAX का उपयोग करके) जब बटन के लिए OnClientClick ईवेंट उठाया जाता है। इस मामले में, जब पृष्ठ पेज_लोड ईवेंट तक पहुंचता है तो आप उचित सामग्री प्रस्तुत करने में सक्षम होंगे, क्योंकि स्क्रिप्ट निष्पादित होने के बाद पोस्टबैक होता है। यदि डेटाबेस अद्यतन अपेक्षाकृत कम समय लेता है तो यह ठीक काम करना चाहिए।

0

एक जिज्ञासा, पेज जैसी किसी भी चीज़ का उपयोग कर रही है। आईएसपोस्टबैक {कुछ करें} .. यदि हां, तो क्या आप जांच सकते हैं कि आपका अपडेट यूआई कोड इस चेक के बाहर है या नहीं।

5

आप नीचे दिए गए कोड से आपकी समस्या का समाधान कर सकते हैं, ASPX के लिए button_click ब्लॉक

का यह अंत का उपयोग करें: (सी #)

Response.Redirect(HttpContext.Current.Request.Path); 
+0

आपको बहुत बहुत धन्यवाद। इस मुद्दे के साथ अब कुछ दिनों के लिए संघर्ष कर रहे थे, और मुझे कोई उचित जवाब नहीं मिला, लेकिन आपका पूरी तरह से काम किया। – Loyalar

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

  • कोई संबंधित समस्या नहीं^_^