我使用下面的代码将值赋给隐藏的控件。但是在后面的代码中我无法获取隐藏控件的值。请帮我搞定。我试过更多时间。
Script
=======
<script type="text/javascript">
function load_value() {
var val = document.getElementById('<%= hf_xml.ClientID %>');
val.value= "hai";//Whatever i want
alert(val.value);//alert message show with text hai
}
window.onload = load_value;
</script>
<asp:HiddenField ID="hf_xml" runat="server" />
Code Behind
===========
protected void Page_Load(object sender, EventArgs e)
{
string value = hf_xml.Value;//Always Empty
}
答案 0 :(得分:2)
您的代码中没有任何遗漏/错误。尝试了解发生的事件的顺序。
页面完成加载后,预计会执行 Window.Onload 。由于Page仍在处理中,因此预期Page_Load
会被提前调用。
这确实发生了。使用调试符号验证时,首先调用Page_Load
,稍后调用window.onload
方法。这就是您的HiddenField
显示空值的原因。
此外,正如预期的那样,第一次请求页面时,HiddenField值将为Empty,但在下一次回发之后,将为此HiddenField设置Value。
答案 1 :(得分:1)
您不应在input
控件上使用innerHTML
使用value
代替
var val = document.getElementById('<%= hf_xml.ClientID %>');
val.value = "hai";//Whatever i want
答案 2 :(得分:0)
你想在发布到服务器之前获取值吗?意味着您无法在发布到服务器之前访问该值(意味着单击按钮或某些服务器端事件)
在表单上放一个asp:按钮,点击按钮后检查值