问题
Here's my problem. I have a hidden field whose value I change through a javascript method. The problem is after postback the value is lost.
How can I persist the value after postback?
Thanks!
.aspx File
<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:Button ID="BtnGuardar" runat="server" OnClick="BtnGuardar_Click" OnClientClick="return GridUpdateInfoOK()" />
.js file
document.getElementById('<%= HiddenField1.ClientID %>').value = 'TEST';
.aspx.cs file
protected void BtnGuardar_Click(object sender, EventArgs e)
{
String test = HiddenField1.Value;
}
回答1:
You don't need to have the hidden input run at server. You can do:
<input type="hidden" id="HiddenInput" name="HiddenInput" value="" />
Then when you post back you can access it like that:
protected void BtnGuardar_Click(object sender, EventArgs e)
{
String test = Request.Form["HiddenInput"];
}
回答2:
That doesn't work like that. The value is not present since the PageLoad, so won't be postbacked. Try using a TextBox with style="display:none".
回答3:
Please use
<asp:HiddenField ID="HiddenField1" runat="server" EnableViewState="true"/>
Then we will get the value after postback.
All the properties of HiddenField are as bellow:
<asp:HiddenField
EnableTheming="True|False"
EnableViewState="True|False"
ID="string"
OnDataBinding="DataBinding event handler"
OnDisposed="Disposed event handler"
OnInit="Init event handler"
OnLoad="Load event handler"
OnPreRender="PreRender event handler"
OnUnload="Unload event handler"
OnValueChanged="ValueChanged event handler"
runat="server"
SkinID="string"
Value="string"
Visible="True|False"
/>
来源:https://stackoverflow.com/questions/6270085/hidden-value-assigned-in-js-lost-after-postback