.NET - Unable to get values from Value property of HtmlInputHidden

Posted by user245123 on Stack Overflow See other posts from Stack Overflow or by user245123
Published on 2010-03-16T20:03:50Z Indexed on 2010/03/16 20:41 UTC
Read the original article Hit count: 198

Filed under:
|
|

I have a custom control that inherits from .NET's CompositeControl class. This control overrides the CreateChildControls in order to build its child controls dynamically. I need the page to post back after a couple different javascript events occur on the client side.

In order to accomplish this, I create two hidden controls on the page so I can set their values with javascript, submit the page, and read the values out on server side. Here's is the code I use to create these two hiddens:

Protected Overrides Sub CreateChildControls()
    hdEventName = New HiddenField()
    Controls.Add(hdEventName)
    hdEventName.ID = "hdEventName"
    hdEventArgs = New HiddenField()
    Controls.Add(hdEventArgs)
    hdEventArgs.ID = "hdEventValue"
    ' other controls
    ' ...
End Sub

When a javascript event occurs I set the value attribute of the two hiddens and submit the page, like so:

hdEventName.value = 'EventName';
hdEventArgs.value = 'arg1,arg2';
document.forms[0].submit();

In the OnLoad method of my control, I attempt to check the Value property of the hdEventName and hdEventArgs controls, but it is always empty. However, Page.Request.Form(hdEventName.UniqueID) and Page.Request.Form(hdEventArgs.UniqueID) return correct values. The actual HTML in the markup also shows correct values after the page posts back.

Why is the Value property of the HtmlInputHiddens disconnected from the actual value that appears on the client?

© Stack Overflow or respective owner

Related posts about ASP.NET

Related posts about JavaScript