Populate Hidden field on post back and retrieve value from Hidden Field

R

Rick

Can someone help me? I have a HTMLSelect control that is populated on the
Page_Load event. I want to basically when the user makes a selection to
populate session variables upon an Item change in the HTMLSelect. I have
tried just about everything I've read and can think of, but have not been
able to get this to work.
Currently I get a script error that Hidden1 field is undefined after the
post back.

My code:
ASPX:
<script language="javascript" type="text/javascript">
function dothepostback()
{
//ddCustList gets renamed
var selval = document.getElementById("_ctl2_ddCustList").value;
Hidden1.value = selval;
//Post back the page
document.forms[0].submit();
}
</script>

<table cellpadding="0" cellspacing="0" width="100%" class="TopNavMenu">
<tr>
<td>
<CYBERAKT:ASPNETMENU id="ASPNetMenu"
clientscriptlocation="/aspnetmenu_client/" menustyle="ClassicHorizontal"
runat="server"></CYBERAKT:ASPNETMENU>
</td>
<td align="right">
<input type="text" id="Hidden1" name="Hidden1" value="" runat="server"
enableviewstate="true" />
Choose Customer:<select id="ddCustList" runat="server"
onchange="dothepostback()" enableviewstate="true"><option></option></select>
</td>
</tr>
</table>

Code Behind to get Hidden Field Value:
Dim hdnSearch As New HtmlInputText
Dim x As String
hdnSearch = FindControl("Hidden1")
x = hdnSearch.Value

Session("HIDVal") = x

I cannot use an asp DropDownList control because it requires a Form tag with
runat="server", which you cannot have multples in a web page Tthe web site
I'm working with was initially built to Inherit different parts of a page
and then put it all together at the end (Not well planned out and to change
it would be a massive undertaking). So other parts of the page may already
have the Form tag with runat="server"

Thanks in Advance!
 
G

Guest

Can someone help me? I have a HTMLSelect control that is populated on the
Page_Load event. I want to basically when the user makes a selection to
populate session variables upon an Item change in the HTMLSelect. I have
tried just about everything I've read and can think of, but have not been
able to get this to work.
Currently I get a script error that Hidden1 field is undefined after the
post back.

Well, you need to find Hidden1 field exactly as you do it for selval

instead of

var selval = document.getElementById("_ctl2_ddCustList").value;
Hidden1.value = selval;

do

var selval = document.getElementById("_ctl2_ddCustList").value;
var h = document.getElementById("<%=Hidden1.getClientID()%>");

You can't use Hidden1 by referring to its ASP.NET's id from js because
it has another id on the client. Just open your result page in source
view in the browser and you will what I mean. To fix it I used
getClientID() which should return it.

Hope this helps
 
R

Rick

Thanks! That solved the issue with the HiddenField Error, but when I get to
the code behind, the hidden field value is gone. Viewstate does not appear
to be working. Any suggestions?

function dothepostback() {
//Get Drop down list

var seldd = document.getElementById("<%=ddCustList.UniqueID()%>");

//Get Hidden Field

var hidctl = document.getElementById("<%=Hidden1.UniqueID()%>");

//Set Hidden field to selected item

hidctl.value = seldd.value;


//post back the page

document.forms[0].submit();

}

<table cellpadding="0" cellspacing="0" width="100%" class="TopNavMenu">

<tr>

<td>

<CYBERAKT:ASPNETMENU id="ASPNetMenu"
clientscriptlocation="/aspnetmenu_client/" menustyle="ClassicHorizontal"
runat="server"></CYBERAKT:ASPNETMENU>

</td>

<td align="right">

<input type="hidden" id="Hidden1" name="Hidden1" runat="server"
enableviewstate="true" />

Choose Customer:<select id="ddCustList" onchange="dothepostback()"
runat="server" enableviewstate="true"><option></option></select>

</td>

</tr>

</table>

Code behind:

Dim hdnSearch As New HtmlInputHidden

Dim x As String

hdnSearch = FindControl("Hidden1")

x = hdnSearch.Value

Can someone help me? I have a HTMLSelect control that is populated on the
Page_Load event. I want to basically when the user makes a selection to
populate session variables upon an Item change in the HTMLSelect. I have
tried just about everything I've read and can think of, but have not been
able to get this to work.
Currently I get a script error that Hidden1 field is undefined after the
post back.

Well, you need to find Hidden1 field exactly as you do it for selval

instead of

var selval = document.getElementById("_ctl2_ddCustList").value;
Hidden1.value = selval;

do

var selval = document.getElementById("_ctl2_ddCustList").value;
var h = document.getElementById("<%=Hidden1.getClientID()%>");

You can't use Hidden1 by referring to its ASP.NET's id from js because
it has another id on the client. Just open your result page in source
view in the browser and you will what I mean. To fix it I used
getClientID() which should return it.

Hope this helps
 
G

Guest

Thanks! That solved the issue with the HiddenField Error, but when I get to
the code behind, the hidden field value is gone. Viewstate does not appear
to be working. Any suggestions?

function dothepostback() {
//Get Drop down list

var seldd = document.getElementById("<%=ddCustList.UniqueID()%>");

//Get Hidden Field

var hidctl = document.getElementById("<%=Hidden1.UniqueID()%>");

//Set Hidden field to selected item

hidctl.value = seldd.value;

//post back the page

document.forms[0].submit();

}

<table cellpadding="0" cellspacing="0" width="100%" class="TopNavMenu">

<tr>

<td>

<CYBERAKT:ASPNETMENU id="ASPNetMenu"
clientscriptlocation="/aspnetmenu_client/" menustyle="ClassicHorizontal"
runat="server"></CYBERAKT:ASPNETMENU>

</td>

<td align="right">

<input type="hidden" id="Hidden1" name="Hidden1" runat="server"
enableviewstate="true" />

Choose Customer:<select id="ddCustList" onchange="dothepostback()"
runat="server" enableviewstate="true"><option></option></select>

</td>

</tr>

</table>

Code behind:

Dim hdnSearch As New HtmlInputHidden

Dim x As String

hdnSearch = FindControl("Hidden1")

x = hdnSearch.Value


Can someone help me? I have a HTMLSelect control that is populated on the
Page_Load event. I want to basically when the user makes a selection to
populate session variables upon an Item change in the HTMLSelect. I have
tried just about everything I've read and can think of, but have not been
able to get this to work.
Currently I get a script error that Hidden1 field is undefined after the
post back.

Well, you need to find Hidden1 field exactly as you do it for selval

instead of

var selval = document.getElementById("_ctl2_ddCustList").value;
Hidden1.value = selval;

do

var selval = document.getElementById("_ctl2_ddCustList").value;
var h = document.getElementById("<%=Hidden1.getClientID()%>");

You can't use Hidden1 by referring to its ASP.NET's id from js because
it has another id on the client. Just open your result page in source
view in the browser and you will what I mean. To fix it I used
getClientID() which should return it.

Hope this helps

The easiest way to debug js is to put alert(); in the code. Try to get
on what step you get wrong value.
 

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

Forum statistics

Threads
473,733
Messages
2,569,439
Members
44,829
Latest member
PIXThurman

Latest Threads

Top