Find out the control that initiated the postback event

D

Dan

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.

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

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.

Thats my question! Thanks..
 
V

vMike

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.

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.

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

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.

Thats my question! Thanks..
 
D

Dan

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 ?



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.

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.

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

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.

Thats my question! Thanks..
 
D

Dan

the items do actually exist in the Request.Form collection...

but are ""


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.

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.

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

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.

Thats my question! Thanks..
 
V

vMike

Are the control(s) within the form tags?
the items do actually exist in the Request.Form collection...

but are ""


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.

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.

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

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.

Thats my question! Thanks..
 
B

bruce barker

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)

the items do actually exist in the Request.Form collection...

but are ""


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.

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.

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

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.

Thats my question! Thanks..
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,901
Latest member
Noble71S45

Latest Threads

Top