开发者

Bubbling Events to Parent in ASP.NET

开发者 https://www.devze.com 2023-02-19 07:25 出处:网络
I have say this hierarchy in ASP.NET: page user control 1 user control 2 control 3 开发者_JAVA百科 What I want to be able to do is that when control 3 (it could be any kind of control, I want to do

I have say this hierarchy in ASP.NET:

page
  user control 1
     user control 2
         control 3
开发者_JAVA百科

What I want to be able to do is that when control 3 (it could be any kind of control, I want to do this generically) has the user do something with it that triggers a postback, it bubbles up some event to user control 2, or maybe even user control 1 (though I could have UC 2 manually bubble the event too).

Again, I want to do this generically, so that the hierarchy can change and it still works. Maybe there are multiple controls (control 4, etc.) or a data bound control. Is this possible?

Thanks.


Event Bubbling is built into asp.net

Check this out: https://web.archive.org/web/20210324143926/http://www.4guysfromrolla.com/articles/051105-1.aspx

Basically, to raise the event that you want bubbled up:

RaiseBubbleEvent(this, args);

And then to catch it:

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;
}

As the code implies, if this method returns false, the event will continue to bubble up the control hierarchy

The implementation of RaiseBubbleEvent is provided by Control and cannot be overridden. RaiseBubbleEvent sends the event data up the hierarchy to the control's parent. To handle or to raise the bubbled event, a control must override the OnBubbleEvent method.

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

0

精彩评论

暂无评论...
验证码 换一张
取 消