अपने उपयोगकर्ता नियंत्रण कक्षा में, OnBubbleEvent() को ओवरराइड करें। यदि आप सच लौटते हैं, तो आप पैरेंट नियंत्रण में "बबल अप" को रोक देंगे।
protected override bool OnBubbleEvent(object source, EventArgs args)
{
//handled
return true;
//uncomment line below to bubble up (unhandled)
//return base.OnBubbleEvent(source, args);
}
एक और कुछ हद तक साफ बात यह है कि मैंने पाया है, जबकि इस पर संवारता, कुछ मामलों में उपयोगी हो सकता है जो ... आप कमांड नाम है कि रूप में अच्छी तरह नियंत्रण heirachy में 'ऊपर बुलबुले' को बदल सकते हैं के बारे में सोचना। अपने बच्चे के उपयोगकर्ता नियंत्रण में, ऑनक्लिक के बजाय ऑनकॉमैंड का उपयोग करें।
तो, आप अपने उपयोगकर्ता नियंत्रण में एक बटन है का कहना है कि इस से कोड बदलने के लिए,:
<asp:button id="mySpecialButton"
onClick="mySpecialButton_OnClick" runat="server">
इस के लिए
:,
<asp:Button id="mySpecialButton"
CommandName="mySpecialCommand"
CommandArgument="myArgument"
OnCommand="mySpecialButton_Command"
runat="server"/>
तो codebehind में
protected void mySpecialButton_Command(object sender, CommandEventArgs e)
{
RaiseBubbleEvent(this, new CommandEventArgs("Handled", e));
}
इस प्रकार, आपके मूल नियंत्रण के आइटम कमांडर हैंडलर में आपको मूल कमांड के बजाए यह नया कमांड नाम मिलेगा ई बच्चे नियंत्रण से, जिसे आप फिट देखते हुए कर सकते हैं।
जेम्स, मुझे आपके द्वारा उल्लिखित हैंडल संपत्ति नहीं मिल रही है। वर्तमान में मैं इसे उपयोगकर्ता नियंत्रण के बटन क्लिक ईवेंट के अंदर करने की कोशिश कर रहा हूं। संरक्षित उप btnAddToCart_Click (ByVal इस वस्तु के रूप में, ByVal ई System.EventArgs के रूप में) हैंडल btnAddToCart.Click इस मामले में ई बस EventArgs है और यह एक संभाला संपत्ति नहीं है: विधि निम्नलिखित हस्ताक्षर हैं। क्या कहीं और मुझे इस संपत्ति तक पहुंचने की कोशिश करनी चाहिए? – mclark1129