Bri*_*ins 8 .net c# asp.net events event-handling
我在ASP.NET中说过这个层次结构:
page
user control 1
user control 2
control 3
Run Code Online (Sandbox Code Playgroud)
我想要做的是,当控件3(它可以是任何类型的控件,我想要通常这样做)让用户做一些触发回发的事情,它会将某些事件冒泡到用户控件2 ,或者甚至可能是用户控制1(虽然我也可以让UC 2手动鼓泡事件).
同样,我想一般地这样做,以便层次结构可以改变,它仍然有效.也许有多个控件(控件4等)或数据绑定控件.这可能吗?
谢谢.
Ada*_*kis 11
事件冒泡是内置于asp.net
看看这个:http: //www.4guysfromrolla.com/articles/051105-1.aspx
基本上,要提升您想要冒泡的事件:
RaiseBubbleEvent(this, args);
Run Code Online (Sandbox Code Playgroud)
然后抓住它:
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;
}
Run Code Online (Sandbox Code Playgroud)
正如代码所暗示的,如果此方法返回false,则事件将继续冒泡控制层次结构
RaiseBubbleEvent的实现由Control提供,不能被覆盖.RaiseBubbleEvent将层次结构中的事件数据发送到控件的父级.要处理或引发冒泡事件,控件必须覆盖OnBubbleEvent方法.
来自MSDN:http://msdn.microsoft.com/en-us/library/aa719644( v = vs.71).aspx
| 归档时间: |
|
| 查看次数: |
10459 次 |
| 最近记录: |