使用c#获取onload隐藏字段值

时间:2013-09-16 12:25:29

标签: c# javascript asp.net c#-4.0

我使用下面的代码将值赋给隐藏的控件。但是在后面的代码中我无法获取隐藏控件的值。请帮我搞定。我试过更多时间。

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
 }

3 个答案:

答案 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:按钮,点击按钮后检查值