【问题标题】:Get onload hidden field value using c#使用c#获取onload隐藏字段值
【发布时间】:2013-09-16 12:25:29
【问题描述】:

我正在使用下面的代码将值分配给隐藏控件。但是在后面的代码中我无法获取隐藏控件的值。请帮我搞定这个。我尝试了更多时间。

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
 }

【问题讨论】:

  • 更改val.value,而不是val.innerHTML

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


【解决方案1】:

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

Window.Onload 预计会在页面完成加载后执行。而Page_Load 预计会提前调用,因为页面仍在处理中。

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

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

【讨论】:

    【解决方案2】:

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

    改用value

    var val = document.getElementById('<%= hf_xml.ClientID %>');
    val.value = "hai";//Whatever i want
    

    【讨论】:

    • 我用过,但我不能得到那个
    • 这里没有错误。但是在页面加载后面的代码中,我无法获得 hf_xml 值。它总是返回 null
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      • 2011-03-12
      • 2011-03-06
      • 2014-04-10
      相关资源
      最近更新 更多