|
code
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Control in template does not bubble events(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 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
GridView override InitializePager columnSpan problem when using BoundField Visible=false
Need help on validation on a group of controls back to calling page Page / UserControl OnInit Problem Where is Page.RegisterClientScriptBlock Available? how to raise SelectedIndexChange event? Determining item count of databound DropDownList CreateUserWizard - membership and roles checkbox weird Problem Customizing the Calendar Control |
|||||||||||||||||||||||