In ASP.NET2, How do I capture a button click event of the parent page which contains my user control.

Hi,

I have an ASP.NET2 page which contains a user control. This container page has some generic buttons on it like "Next", "Previous" etc. How do I capture when these parent buttons have been clicked in my User Control Code Behind. I need to do this since I need to invoke some final processing before the User Control disappears to be replaced by another.

A code example would be really handy.

Thanks,

Sam
SamJollyAsked:
Who is Participating?
 
xav056Connect With a Mentor Commented:
in the page_init
try this
Request.Form["__EVENTTARGET"]  that should give you the id of the control that caused the postbac if it is anajax control
alternatively if it is a regular asp button you do
Request.Form["TheIDOfYourButton"]  is that is not null it means that control caused the postback
0
 
SamJollyAuthor Commented:
I assume you are talking about the page_init in the container page. I would really like capture the event in the user control preferable using the "Handles" feature so that I can link an event handler in my User Control to the event that happened in the parent.

The parent event looks like this:

    Protected Sub btnPrev_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPrev.Click

In the User Control code I would like to get some code to run then have this parent code run as normal.
Something like this in the User Control:

Protected Sub btnPrev_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Parent.btnPrev.Click
..... Do UserControl Final Save code
 ....Now run normal Parent.btnPrev.Click code.

Thoughts???

Thanks,

Sam


0
 
xav056Commented:
yes,
how about you expose a public methods that you can  call from the page_init
0
Cloud Class® Course: Ruby Fundamentals

This course will introduce you to Ruby, as well as teach you about classes, methods, variables, data structures, loops, enumerable methods, and finishing touches.

 
Obadiah ChristopherConnect With a Mentor Commented:
Did u take a look @delegates. I'm not sure of this, coz the other way arnd works using delegates.
0
 
SamJollyAuthor Commented:
Thanks all for comments.

I have just tried using the Page_Init method, in the user control, with the following code:

 Dim ctrlname As String = Page.Request.Params.Get("__EVENTTARGET")

However "ctrlName" always returns "" when I click on the Parent's buttons.

Thoughts?

0
 
SamJollyAuthor Commented:
OK, I have managed to get something to work:

        ctrlname = Request.Form("ctl00$MainPanelContent$btnNext")

This checks the "name" attribute which returns "Next" if clicked and therefore I could use this. However it does not seem to be a very ASP.NET way of doing things. I would love to know the correct ASP.NET way of doing this. I still think there must be a correct way of trapping Parent Page events, ie parent.btnNext.clicked,  within the User Control. So what is the recommended way to do this?

Thanks,

Sam
0
 
xav056Commented:
I think the control  btnNext.ClientId will return ctl00$MainPanelContent$btnNext
0
 
SamJollyAuthor Commented:
thks. Apologies for the delay in closing
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.