2009-10-13 14 views
9

मेरे पास एक HTML बटन है, नीचे देखें। जब इसे क्लिक किया जाता है और AutoEventWireup = "true", Save_Click क्लिक हैंडलर को दो बार निकाल दिया जाता है। जब AutoEventWireup = "झूठा", यह एक बार आग लगती है।एचटीएमएल बटन हैंडलर क्लिक करते समय दो बार आग लगती है (जब ऑटोवेन्टवायरअप = "ट्रू")

यह दो बार फायरिंग क्यों कर रहा है? बटन दो बार पंजीकृत नहीं है और कोई कोड जो इवेंट हैंडलर जोड़ रहा है। मास्टर पेज का उपयोग करना और कोई अजाक्स नहीं।

<button id="Save" accesskey="v" type="submit" runat="server" onserverclick="Save_Click"></button> 
+0

कोड में आग लगने के कारण कुछ और होना चाहिए, मुझे लगता है कि हमें पृष्ठ के लिए सभी संबंधित कोड देखना होगा। यह बहुत ही असंभव है कि बटन इसे अपने आप कर रहा है। – kscott

उत्तर

10

ठीक है मुझे पता चला है कि एक HTMLButton ऑनसर्वरक्लिक घटना के लिए और प्रकार = "सबमिट" के लिए आग लगती है। जब मैंने टाइप = "सबमिट" हटा दिया, तो यह एक बार आग लग गई। इस विचित्र व्यवहार ने मुझे खोजने में काफी समय लगाया!

+4

मेरे मामले में मैंने इसे टाइप = "सबमिट" का उपयोग नहीं किया था, मैंने अभी एक प्रकार निर्दिष्ट नहीं किया था। मैंने स्पष्ट रूप से निर्दिष्ट प्रकार = "बटन" निर्दिष्ट किया और इसके बाद इसे ठीक किया गया। – Peter

+2

यह आपके द्वारा चलाए जा रहे एएसपी.NET संस्करण या आप किस ब्राउज़र का उपयोग कर रहे हैं, इस पर आधारित दिलचस्प रूप से अलग व्यवहार है। उदाहरण, मैंने 'टाइप' निर्दिष्ट नहीं किया है और यह फ़ायरफ़ॉक्स पर ठीक काम करता है, लेकिन क्रोम ने माना कि यह 'बटन' –

0

बस एक अनुमान: हैंडलर दो बार गोली चलाई जा रही है, लेकिन आप Page_Load घटना इसे दो बार फायरिंग होना दिखाई देते हैं कि बनाता है में एक समान व्यवहार सेटअप किया था।

+0

हैंडलर के अंदर ब्रेकपॉइंट पृष्ठ लौटने से पहले दो बार मारा जाता है। हैंडलर एक टेबल में एक रिकॉर्ड डालता है और मुझे दो रिकॉर्ड दिखाई देते हैं। कोड में डालने के साथ कोड में कोई अन्य स्थान नहीं है और कोई डेटाबेस ट्रिगर नहीं है। –

+0

मैं दूसरा kscott होगा ... क्या हम पीछे कोड के अधिक देख सकते हैं? –

19

और अब (कम से कम .net 4 में) और भी बेहतर:

<button runat="server"> 

डिफ़ॉल्ट बर्ताव से यह, type = "सबमिट करें" (क्लिक पर दो बार आग) तो के लिए इसे सही ढंग से काम करने के लिए है के रूप में, हम स्पष्ट रूप से टाइप = "बटन" सेट करना चाहिए, यानी:

<button id="ButtonSubscribe2" runat="server" type="button" onserverclick="Save_Click"></button> 
+0

की बजाय' सबमिट 'था, मेरी समस्या हल हो गई। धन्यवाद! – jmotes

+0

यह मेरी समस्या हल! :) धन्यवाद! –

+0

अच्छा बिंदु, धन्यवाद –

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