Go Back   Velocity Reviews > Newsgroups > ASP Net
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply

ASP Net - Handle Event of Dynamically Added User Control

 
Thread Tools Search this Thread
Old 04-29-2005, 04:43 AM   #1
Default Handle Event of Dynamically Added User Control


Hi There!

How to handle the events of a dynamically added user control?

e.g. I have following code...

Dim myUserControl as Object = LoadControl("myFirstControl.ascx")

myFirstControl fires LinkClicked event and I don't know how to handle that
LinkClicked event from containing page.

Please help!! Thanks!!!

Jon




Jon B
  Reply With Quote
Old 04-29-2005, 10:22 AM   #2
billmiami2@netscape.net
 
Posts: n/a
Default Re: Handle Event of Dynamically Added User Control

You will need to use addhandler to specify the event handler as in


Dim myUserControl as Object = LoadControl("myFirstControl.ascx")
AddHandler myUserControl.myEvent, AddressOf Me.MyEventHandler

Elsewhere on the page place the event handling routing you specified

Sub MyEventHandler(obj as Object, e as EventArgs)
'Do something when the event fires
End Sub

Bill E.
Hollywood, FL




Jon B wrote:
> Hi There!
>
> How to handle the events of a dynamically added user control?
>
> e.g. I have following code...
>
> Dim myUserControl as Object = LoadControl("myFirstControl.ascx")
>
> myFirstControl fires LinkClicked event and I don't know how to handle

that
> LinkClicked event from containing page.
>
> Please help!! Thanks!!!
>
> Jon


  Reply With Quote
Old 04-29-2005, 12:53 PM   #3
Jon B
 
Posts: n/a
Default Re: Handle Event of Dynamically Added User Control

Thanks for the reply Bill, but I get the following error message when I
tried your method...

BC30676: 'LinkClicked' is not an event of 'System.Object'.

Any ideas? Thanks again!!!

Jon

<> wrote in message
news: oups.com...
> You will need to use addhandler to specify the event handler as in
>
>
> Dim myUserControl as Object = LoadControl("myFirstControl.ascx")
> AddHandler myUserControl.myEvent, AddressOf Me.MyEventHandler
>
> Elsewhere on the page place the event handling routing you specified
>
> Sub MyEventHandler(obj as Object, e as EventArgs)
> 'Do something when the event fires
> End Sub
>
> Bill E.
> Hollywood, FL
>
>
>
>
> Jon B wrote:
>> Hi There!
>>
>> How to handle the events of a dynamically added user control?
>>
>> e.g. I have following code...
>>
>> Dim myUserControl as Object = LoadControl("myFirstControl.ascx")
>>
>> myFirstControl fires LinkClicked event and I don't know how to handle

> that
>> LinkClicked event from containing page.
>>
>> Please help!! Thanks!!!
>>
>> Jon

>



  Reply With Quote
Old 04-29-2005, 01:01 PM   #4
billmiami2@netscape.net
 
Posts: n/a
Default Re: Handle Event of Dynamically Added User Control

Well, I suppose that you need to dimension your user control not as an
object, but as an instance of the user control's type

Dim MyUserControl as usercontrolclass =
LoadControl("myFirstControl.ascx")

Bill

  Reply With Quote
Old 04-29-2005, 10:11 PM   #5
Jon B
 
Posts: n/a
Default Re: Handle Event of Dynamically Added User Control


Thanks for the reply again Bill! But how do I dimension my user control as
the type of User control?

I'm not using Code-Behind method and my project also didn't get complied
every time I change something. Both code and HTML is in one ASCX file.
There's a ClassName attribute at the top of the page in Control directive.
But I'm unable to declare an object with that type in containing page.

So how do I go about it??

Thanks!!
Jon

<> wrote in message
news: oups.com...
> Well, I suppose that you need to dimension your user control not as an
> object, but as an instance of the user control's type
>
> Dim MyUserControl as usercontrolclass =
> LoadControl("myFirstControl.ascx")
>
> Bill
>



  Reply With Quote
Old 04-30-2005, 12:33 PM   #6
billmiami2@netscape.net
 
Posts: n/a
Default Re: Handle Event of Dynamically Added User Control

Jon,

Now I understand. Things are a bit less clear with the in-line coding.

If you don't use the ClassName attribute in your control
"myusercontrol.ascx", I think that the class is implicitly created as

ASP.myusercontrol_ascx

If you specify a class name, it will be

ASP.myspecifiedclassname

However, if you're unsure, you can load the control as an object, then
return its type with GetType as in

Dim myUserControl as Object = LoadControl("myFirstControl.ascx")
Response.Write(myUserControl.GetType.toString)

Once you know the type, you can change to

Dim myUserControl as ASP.myFirstControl =
LoadControl("myFirstControl.ascx")
AddHandler myUserControl.myCustomEvent, AddressOf Me.MyEventHandler

Bill

  Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump