В вашем классе управления пользователем переопределите OnBubbleEvent(). Если вы вернете true, вы остановите «пузырь» до родительских элементов управления.
protected override bool OnBubbleEvent(object source, EventArgs args)
{
//handled
return true;
//uncomment line below to bubble up (unhandled)
//return base.OnBubbleEvent(source, args);
}
Еще несколько аккуратным, что нужно думать о том, что я нашел, в то время как мастерить на это, что может быть полезно в некоторых случаях ... вы можете изменить имя команды «пузырится» в контрольной heirachy, а также. В вашем пользовательском контроле пользователя используйте OnCommand, а не Onclick.
Так, скажем, у вас есть кнопка в вашем пользовательском элементе управления, измените код из этого:
<asp:button id="mySpecialButton"
onClick="mySpecialButton_OnClick" runat="server">
к этому:
<asp:Button id="mySpecialButton"
CommandName="mySpecialCommand"
CommandArgument="myArgument"
OnCommand="mySpecialButton_Command"
runat="server"/>
то в коде,
protected void mySpecialButton_Command(object sender, CommandEventArgs e)
{
RaiseBubbleEvent(this, new CommandEventArgs("Handled", e));
}
Таким образом, в обработчике ItemCommand вашего родительского элемента вы получите это новое имя команды, а не оригинальную команду nam e из дочернего элемента управления, с которым вы можете справиться по своему усмотрению.
James, Возможно, я не могу найти свойство Handled, о котором вы упоминаете. В настоящее время я пытаюсь сделать это внутри события нажатия кнопки пользовательского элемента управления. Метод имеет следующую подпись: Protected Sub btnAddToCart_Click (ByVal отправитель As Object, ByVal е Как System.EventArgs) Ручки btnAddToCart.Click е в этом случае просто EventArgs и не имеет свойства обрабатывается. Где-то еще я должен пытаться получить доступ к этому свойству? – mclark1129