Home All Groups Group Topic Archive Search About

Control in template does not bubble events

Author
11 Jun 2006 10:10 AM
Iain
THis is more than likely something silly I'm doing.

(ASP.NET 2.0 W2003)

I've written a templated databound custom control which works.  Except.

If I put a control (such as a LinkButton) in one of the templates, then no
event is bubble up when it is clicked.

the control is added to teh control tree (apparently correctly).

If I add the 'same' control to the Controls collection in code then the
event bubbling works correctly.

However if instead I add the control to the Controls collection of the
Container for the template (the one which I call InstatiateIn on) then,
though the control is present, no events are bubbled up.  The OnEventBubble
is not called in teh container either.

In short, when I add an ASP.NET control to a templated container (thorugh
the template or code), events do not bubble.  If I added in the root of the
control tree, they do.

As far as I read, this should just work.  But obviously, I'm missing
something!

Iain
--
Iain Downs (DirectShow MVP)
Commercial Software Therapist
www.idcl.co.uk

Author
13 Jun 2006 6:46 AM
Alessandro Zifiglio
hi Iain, this is happening because the events are raised in the container
control that contains instances of the controls from the inline template,
for eg. when you do : myTemplate.InstantiateIn(somecontrol) then the events
are fired in somecontrol, where you can either handle the events directly in
somecontrol or you can override onBubbleEvent in somecontrol and let it pass
up the hierarchy, in this case it will go up to the naming container
control(the control that exposes your template), where you can again
override onBubbleEvent letting it bubble up again(this time to the control
that hosts your control, possibly the page) or handle it there itself,
depending on your needs.

Good luck,
Alessandro Zifiglio


Show quoteHide quote
"Iain" <I***@idclTAKEAWAY.co.uk> ha scritto nel messaggio
news:wkhdrnn2o16w$.ym1etx56lp8o.dlg@40tude.net...
> THis is more than likely something silly I'm doing.
>
> (ASP.NET 2.0 W2003)
>
> I've written a templated databound custom control which works.  Except.
>
> If I put a control (such as a LinkButton) in one of the templates, then no
> event is bubble up when it is clicked.
>
> the control is added to teh control tree (apparently correctly).
>
> If I add the 'same' control to the Controls collection in code then the
> event bubbling works correctly.
>
> However if instead I add the control to the Controls collection of the
> Container for the template (the one which I call InstatiateIn on) then,
> though the control is present, no events are bubbled up.  The
> OnEventBubble
> is not called in teh container either.
>
> In short, when I add an ASP.NET control to a templated container (thorugh
> the template or code), events do not bubble.  If I added in the root of
> the
> control tree, they do.
>
> As far as I read, this should just work.  But obviously, I'm missing
> something!
>
> Iain
> --
> Iain Downs (DirectShow MVP)
> Commercial Software Therapist
> www.idcl.co.uk