1

I am using the below code to assign the value to a hidden control.But in code behind i can't get the value of the hidden control. Please help me to get this.I tried more time.

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
 }
4

3 回答 3

2

您的代码中没有任何真正缺失/不正确的地方。尝试了解发生的事件的顺序。

Window.Onload预计将在页面完成加载时执行。而Page_Load由于页面仍在处理中,预计会提前调用。

而这确实正在发生。正如使用调试符号验证的那样,Page_Load首先调用该window.onload方法,稍后调用该方法。这就是为什么您HiddenField显示空值的原因。

此外,正如预期的那样,第一次请求页面时,HiddenField 值将为 Empty,但在下一次回发时,将为该 HiddenField 设置值。

于 2013-09-16T16:03:47.400 回答
1

你不应该在input控件上使用 innerHTML

value改为使用

var val = document.getElementById('<%= hf_xml.ClientID %>');
val.value = "hai";//Whatever i want
于 2013-09-16T12:28:04.187 回答
0

您是否尝试在发布到服务器之前获得价值?意味着您在发布到服务器之前无法访问该值(意味着单击按钮或某些服务器端事件)

在表单上放置一个 asp:button 并在单击按钮后检查值

于 2013-09-16T12:31:26.443 回答