Saturday 15 March 2014

How do I cancel event bubbling in ASP.net? -


क्या नियंत्रण वस्तु क्रम को बुदबुदाते हुए आइटम कॉमांड या नियंत्रण घटना रोकना संभव है? मेरे पास एक नियंत्रण है जिसमें बाल उपयोगकर्ता नियंत्रण शामिल हैं जो कि हो सकता है या पहले से ही ऐसा कोड न हो जो उनके आइटम कॉमांड ईवेंट्स को प्रबंधित करता हो मैं क्या करना चाहूंगा, बच्चे नियंत्रण को आइटम कॉमांड को उस स्थिति में पैरेंट कंट्रोल के साथ पास करने का फैसला करने की अनुमति देना है, जो पहले से ही इसके कोड-पीछे की घटना को संसाधित करता है।

धन्यवाद,

माइक

अपने उपयोगकर्ता नियंत्रण वर्ग में, OnBubbleEvent () ओवरराइड करें यदि आप सत्य वापस करते हैं, तो आप माता-पिता के नियंत्रण में "बबल अप" को रोक देंगे।

  संरक्षित ओवरराइड बूल ऑनबबलइवेंट (ऑब्जेक्ट स्रोत, इवेंटआर्ग्स एल्ग्स) {// संभाला वापसी सही; // नीचे बुलबुला (अनियंत्रित) // वापसी का आधार करने के लिए नीचे uncomment लाइन। OnBubbleEvent (स्रोत, आर्ग्स); }  

किसी और चीज के बारे में सोचने के लिए कुछ सुव्यवस्थित बात यह है कि मुझे इस पर टिंकर करते हुए पाया गया, जो कुछ उदाहरणों में उपयोगी हो सकता है ... आप उस कमांड नाम को बदल सकते हैं जो 'बुलबुले' में है नियंत्रण के रूप में अच्छी तरह से heirachy अपने बच्चे के उपयोगकर्ता नियंत्रण में, OnClick के बजाय OnCommand का उपयोग करें।

तो, कहें कि आपके पास उपयोगकर्ता नियंत्रण में एक बटन है, इससे कोड बदलें:

  & lt; asp: button id = "mySpecialButton" onClick = "mySpecialButton_OnClick" runat = "सर्वर" & gt;  

इसे करने के लिए:

  & lt; asp: बटन id = "mySpecialButton" CommandName = "mySpecialCommand" कमांडअर्जमेंट = "myArgument" OnCommand = "mySpecialButton_Command" runat = "सर्वर" / & gt;  

फिर codebehind में,

  संरक्षित शून्य mySpecialButton_Command (ऑब्जेक्ट प्रेषक, CommandEventArgs ई) {RaiseBubbleEvent (यह, नया CommandEventArgs ("हैंडल", ई) ); }  

इस प्रकार, आपके पैरेंट कंटेंट के मद-कॉमांड हैंडलर में आपको बाल कंट्रोल से मूल कमांड नाम की बजाय इस नए कमांड का नाम मिलेगा, जिसे आप फिट दिखने के साथ कर सकते हैं। / P>


No comments:

Post a Comment