Control.RaiseBubbleEvent(Object, EventArgs) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将所有事件源及其信息分配给控件的父级。
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
事件源。
示例
下面的代码示例演示如何创建自定义类 , 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 服务器控件(如 Repeater) DataList 和 GridView Web 控件可以包含引发事件的子控件。 例如,控件中的每一 GridView 行可以包含模板动态创建的一个或多个按钮。 嵌套控件中的事件不是每个按钮单独引发事件,而是“气泡化”-也就是说,它们被发送到控件的父级。 父级反过来会引发名为 RowCommand 的泛型事件,其中包含参数值。 通过这些值,可以确定引发原始事件的单个控件。 通过响应此单个事件,可以避免为子控件编写单独的事件处理方法。
虽然无法替代此方法,但你创作的控件可以通过重写 OnBubbleEvent 方法来处理或引发气泡事件。