Control.RaiseBubbleEvent(Object, EventArgs) 方法

定义

将所有事件源及其信息分配给控件的父级。

protected:
 void RaiseBubbleEvent(System::Object ^ source, EventArgs ^ args);
protected void RaiseBubbleEvent (object source, EventArgs args);
member this.RaiseBubbleEvent : obj * EventArgs -> unit
Protected Sub RaiseBubbleEvent (source As Object, args As EventArgs)

参数

source
Object

事件源。

args
EventArgs

包含事件数据的 EventArgs 对象。

示例

下面的代码示例演示如何创建自定义类 , ChildControl重写 Button.OnClick 方法以调用 RaiseBubbleEvent 将事件发送到 Button.Click 其父级 ASP.NET 服务器控件的方法。 当用户单击包含 实例ChildControl的 ASP.NET 页中的按钮时,它会在包含 实例ChildControl的父控件上引发 OnBubbleEvent 方法,并将字符串“调用 ChildControl 类 OnClick 方法”写入页面。

public class ChildControl : Button
{
   [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")] 
   protected override void OnClick(EventArgs e) 
   {
      base.OnClick(e);
      Context.Response.Write("<br><br>ChildControl's OnClick called.");
      // Bubble this event to parent.
      RaiseBubbleEvent(this, e);
   }
Public Class ChildControl
   Inherits Button
   
   <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
   Protected Overrides Sub OnClick(e As EventArgs)
      MyBase.OnClick(e)
      Context.Response.Write("<br><br>ChildControl's OnClick called.")
      ' Bubble this event to parent.
      RaiseBubbleEvent(Me, e)
   End Sub
End Class

注解

ASP.NET 服务器控件(如 RepeaterDataListGridView Web 控件可以包含引发事件的子控件。 例如,控件中的每一 GridView 行可以包含模板动态创建的一个或多个按钮。 嵌套控件中的事件不是每个按钮单独引发事件,而是“气泡化”-也就是说,它们被发送到控件的父级。 父级反过来会引发名为 RowCommand 的泛型事件,其中包含参数值。 通过这些值,可以确定引发原始事件的单个控件。 通过响应此单个事件,可以避免为子控件编写单独的事件处理方法。

虽然无法替代此方法,但你创作的控件可以通过重写 OnBubbleEvent 方法来处理或引发气泡事件。

适用于

另请参阅