What is a bubbled event?

Event bubbling is a mechanism in ASP.NET that allows the handling of child control events through their parent control in data bind controls. When an event occurs in a child control, the event is propagated or "bubbled" up to the parent control. This enables centralized event handling and reduces the need for individual event handlers on each child control.

Event bubbling

To participate in event bubbling, a control inherits two methods from the base class System.Web.UI.Control: OnBubbleEvent and RaiseBubbleEvent. The control can override the OnBubbleEvent method to handle the bubbled event or perform custom logic. The RaiseBubbleEvent method is used to pass the event data up the control hierarchy to the parent control.

protected virtual bool OnBubbleEvent( object source, EventArgs args ); protected void RaiseBubbleEvent( object source, EventArgs args );

Event bubbling is a powerful feature in ASP.NET that allows events defined on server controls to be propagated up the control hierarchy. This means that events triggered by child controls can be handled by their container parent controls or even the page itself. Server controls like DataGrid, DataList, and Repeater often contain child controls, such as buttons or dropdowns, within their item templates.

When an event occurs in a child control, instead of handling the event individually within the child control, it is passed up the control hierarchy to the parent container. This process is known as event bubbling. The parent control can then handle the event and perform any necessary actions. In the case of DataGrid, DataList, or Repeater controls, the events raised by the child controls are usually passed to the parent as the "ItemCommand" event.

Conclusion

Event bubbling allows for centralized event handling and promotes code reusability. It simplifies the management of events in complex controls by reducing the need for individual event handlers on each child control. By utilizing event bubbling, developers can create more flexible and modular code structures, making it easier to maintain and extend their applications.