在ASP.NET中向父级冒泡事件

我在ASP.NET中说过这个层次结构:

page user control 1 user control 2 control 3 

我想要做的是,当控件3(它可以是任何类型的控件,我想一般地执行此操作)让用户做一些触发回发的事情,它会将某些事件冒泡到用户控件2 ,或者甚至可能是用户控制1(虽然我也可以让UC 2手动鼓泡事件)。

同样,我想要通常这样做,以便层次结构可以改变,它仍然有效。 也许有多个控件(控件4等)或数据绑定控件。 这可能吗?

谢谢。

事件冒泡是内置于asp.net

看看这个: http : //www.4guysfromrolla.com/articles/051105-1.aspx

基本上,要提出你想要冒泡的事件:

 RaiseBubbleEvent(this, args); 

然后抓住它:

 protected override bool OnBubbleEvent(object source, EventArgs e) { bool handled = false; if (e is TemplatedListCommandEventArgs) { TemplatedListCommandEventArgs ce = (TemplatedListCommandEventArgs)e; OnItemCommand(ce); handled = true; } return handled; } 

正如代码所暗示的,如果此方法返回false,则事件将继续冒泡控制层次结构

RaiseBubbleEvent的实现由Control提供,不能被覆盖。 RaiseBubbleEvent将层次结构中的事件数据发送到控件的父级。 要处理或引发冒泡事件,控件必须覆盖OnBubbleEvent方法。

来自MSDN: http : //msdn.microsoft.com/en-us/library/aa719644( v = vs.71).aspx