Groups | Blog | Home
all groups > asp.net webcontrols > november 2003 >

asp.net webcontrols : Find out the control that initiated the postback event


Dan
11/28/2003 4:25:19 PM
Hi,

I'd like to find out the control that caused a postback to be raised. =
Obviously this could simply done in a control event handler. I am not =
going to do this method and would like no references as to how to do it =
this way as I already know how.

I know this may be getting into advanced or unheard of territory.

I have some custom web user controls that are dynamically created at run =
time along with other controls. I can still add an event handler to =
these controls, but unfortunately the event handler wont fire until the =
controls are re-created on the postback, but I don't want the start-up =
code running on a post back, I need it to run in the event of the =
control that cuased the post back. This works fine for my other =
controls on the form that arn't generated, but will not for this user =
control, so I need an alternative.

I need some indication in my page_load (or init) event that tells me =
that our user control has initiated the postback and to then run start =
up code. =20

Are there any techniques out there that allow me to dig into the =
postback and discover what control or control type made the postback? =20

Another solution I could add a client side handler that could set the =
value of a checkbox but due to the complexity of the user control I am =
not going to do that, as a post back could be initiated by a multiple =
number of events on different controls within the user control.

vMike
11/28/2003 6:07:20 PM
You should be able to add an eventhandler, but if you don't want to you =
can use Request.Form("__EVENTTARGET"). You must have a control on your =
form that renders the function __doPostBack(eventTarget, eventArgument) =
on your page. Many controls will put the function on your page. You =
could always put a dummy control like a linkbutton or something on your =
page to force the script to be rendered. Hope this helps.

[quoted text, click to view]
Hi,

I'd like to find out the control that caused a postback to be raised. =
Obviously this could simply done in a control event handler. I am not =
going to do this method and would like no references as to how to do it =
this way as I already know how.

I know this may be getting into advanced or unheard of territory.

I have some custom web user controls that are dynamically created at =
run time along with other controls. I can still add an event handler to =
these controls, but unfortunately the event handler wont fire until the =
controls are re-created on the postback, but I don't want the start-up =
code running on a post back, I need it to run in the event of the =
control that cuased the post back. This works fine for my other =
controls on the form that arn't generated, but will not for this user =
control, so I need an alternative.

I need some indication in my page_load (or init) event that tells me =
that our user control has initiated the postback and to then run start =
up code. =20

Are there any techniques out there that allow me to dig into the =
postback and discover what control or control type made the postback? =20

Another solution I could add a client side handler that could set the =
value of a checkbox but due to the complexity of the user control I am =
not going to do that, as a post back could be initiated by a multiple =
number of events on different controls within the user control.

Dan
12/1/2003 9:47:40 AM
Thanks for the reply,

although sounds nice in theory.

I tried it and in every instance of a post back

Diagnostics.Debug.WriteLine(Request.Form("__EVENTTARGET"))

Diagnostics.Debug.WriteLine(Request.Form("__EVENTARGUMENT"))

both return a blank string..



Any ideas ?



[quoted text, click to view]
You should be able to add an eventhandler, but if you don't want to =
you can use Request.Form("__EVENTTARGET"). You must have a control on =
your form that renders the function __doPostBack(eventTarget, =
eventArgument) on your page. Many controls will put the function on your =
page. You could always put a dummy control like a linkbutton or =
something on your page to force the script to be rendered. Hope this =
helps.

[quoted text, click to view]
Hi,

I'd like to find out the control that caused a postback to be =
raised. Obviously this could simply done in a control event handler. I =
am not going to do this method and would like no references as to how to =
do it this way as I already know how.

I know this may be getting into advanced or unheard of territory.

I have some custom web user controls that are dynamically created at =
run time along with other controls. I can still add an event handler to =
these controls, but unfortunately the event handler wont fire until the =
controls are re-created on the postback, but I don't want the start-up =
code running on a post back, I need it to run in the event of the =
control that cuased the post back. This works fine for my other =
controls on the form that arn't generated, but will not for this user =
control, so I need an alternative.

I need some indication in my page_load (or init) event that tells me =
that our user control has initiated the postback and to then run start =
up code. =20

Are there any techniques out there that allow me to dig into the =
postback and discover what control or control type made the postback? =20

Another solution I could add a client side handler that could set =
the value of a checkbox but due to the complexity of the user control I =
am not going to do that, as a post back could be initiated by a multiple =
number of events on different controls within the user control.

Dan
12/1/2003 9:48:42 AM
the items do actually exist in the Request.Form collection...

but are ""


[quoted text, click to view]
You should be able to add an eventhandler, but if you don't want to =
you can use Request.Form("__EVENTTARGET"). You must have a control on =
your form that renders the function __doPostBack(eventTarget, =
eventArgument) on your page. Many controls will put the function on your =
page. You could always put a dummy control like a linkbutton or =
something on your page to force the script to be rendered. Hope this =
helps.

[quoted text, click to view]
Hi,

I'd like to find out the control that caused a postback to be =
raised. Obviously this could simply done in a control event handler. I =
am not going to do this method and would like no references as to how to =
do it this way as I already know how.

I know this may be getting into advanced or unheard of territory.

I have some custom web user controls that are dynamically created at =
run time along with other controls. I can still add an event handler to =
these controls, but unfortunately the event handler wont fire until the =
controls are re-created on the postback, but I don't want the start-up =
code running on a post back, I need it to run in the event of the =
control that cuased the post back. This works fine for my other =
controls on the form that arn't generated, but will not for this user =
control, so I need an alternative.

I need some indication in my page_load (or init) event that tells me =
that our user control has initiated the postback and to then run start =
up code. =20

Are there any techniques out there that allow me to dig into the =
postback and discover what control or control type made the postback? =20

Another solution I could add a client side handler that could set =
the value of a checkbox but due to the complexity of the user control I =
am not going to do that, as a post back could be initiated by a multiple =
number of events on different controls within the user control.

bruce barker
12/1/2003 12:54:53 PM
then the postback was caused by a submit button (or image button). these =
postback by sending their name and value in form fields collection.

-- bruce (sqlwork.com)

[quoted text, click to view]
the items do actually exist in the Request.Form collection...

but are ""


[quoted text, click to view]
You should be able to add an eventhandler, but if you don't want to =
you can use Request.Form("__EVENTTARGET"). You must have a control on =
your form that renders the function __doPostBack(eventTarget, =
eventArgument) on your page. Many controls will put the function on your =
page. You could always put a dummy control like a linkbutton or =
something on your page to force the script to be rendered. Hope this =
helps.

[quoted text, click to view]
Hi,

I'd like to find out the control that caused a postback to be =
raised. Obviously this could simply done in a control event handler. I =
am not going to do this method and would like no references as to how to =
do it this way as I already know how.

I know this may be getting into advanced or unheard of territory.

I have some custom web user controls that are dynamically created =
at run time along with other controls. I can still add an event handler =
to these controls, but unfortunately the event handler wont fire until =
the controls are re-created on the postback, but I don't want the =
start-up code running on a post back, I need it to run in the event of =
the control that cuased the post back. This works fine for my other =
controls on the form that arn't generated, but will not for this user =
control, so I need an alternative.

I need some indication in my page_load (or init) event that tells =
me that our user control has initiated the postback and to then run =
start up code. =20

Are there any techniques out there that allow me to dig into the =
postback and discover what control or control type made the postback? =20

Another solution I could add a client side handler that could set =
the value of a checkbox but due to the complexity of the user control I =
am not going to do that, as a post back could be initiated by a multiple =
number of events on different controls within the user control.

vMike
12/1/2003 2:22:20 PM
Are the control(s) within the form tags?=20
[quoted text, click to view]
the items do actually exist in the Request.Form collection...

but are ""


[quoted text, click to view]
You should be able to add an eventhandler, but if you don't want to =
you can use Request.Form("__EVENTTARGET"). You must have a control on =
your form that renders the function __doPostBack(eventTarget, =
eventArgument) on your page. Many controls will put the function on your =
page. You could always put a dummy control like a linkbutton or =
something on your page to force the script to be rendered. Hope this =
helps.

[quoted text, click to view]
Hi,

I'd like to find out the control that caused a postback to be =
raised. Obviously this could simply done in a control event handler. I =
am not going to do this method and would like no references as to how to =
do it this way as I already know how.

I know this may be getting into advanced or unheard of territory.

I have some custom web user controls that are dynamically created =
at run time along with other controls. I can still add an event handler =
to these controls, but unfortunately the event handler wont fire until =
the controls are re-created on the postback, but I don't want the =
start-up code running on a post back, I need it to run in the event of =
the control that cuased the post back. This works fine for my other =
controls on the form that arn't generated, but will not for this user =
control, so I need an alternative.

I need some indication in my page_load (or init) event that tells =
me that our user control has initiated the postback and to then run =
start up code. =20

Are there any techniques out there that allow me to dig into the =
postback and discover what control or control type made the postback? =20

Another solution I could add a client side handler that could set =
the value of a checkbox but due to the complexity of the user control I =
am not going to do that, as a post back could be initiated by a multiple =
number of events on different controls within the user control.

AddThis Social Bookmark Button