Control.RaiseBubbleEvent(Object, EventArgs) 方法

定义

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

C#
protected void RaiseBubbleEvent(object source, EventArgs args);

参数

source
Object

事件源。

args
EventArgs

包含事件数据的 EventArgs 对象。

示例

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

C#
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);
   }

注解

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

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

适用于

产品 版本
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

另请参阅