var id = document.getElementById("<%= hc2.ClientID %>").value;
取不到值提示上下文不出在h2,但是我明明写了
<asp:HiddenField ID="hc2" runat="server" Value='<%#Eval("PostFloorID") %>'  />
求大神解释!!JavaScript

解决方案 »

  1.   

    改变另外方法,使用这个来传值:
    http://www.cnblogs.com/insus/articles/2036271.html
      

  2.   

    这样是没问题的,问题出在 Value='<%#Eval("PostFloorID") %>'  />,你是怎么绑定的?
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
        <script type="text/javascript">
            window.onload = function () {
                var id = document.getElementById("<%= hc2.ClientID %>").value;
                alert(id);
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <asp:HiddenField ID="hc2" runat="server" Value="111" />
            </div>
        </form>
    </body>
    </html>
      

  3.   

    问题可能出在你的控件Value不存在,看一下你的sql之类的到底有没有数据
      

  4.   

    我把<asp:HiddenField ID="hc2" runat="server" Value='<%#Eval("PostFloorID") %>' />放到DataList里面了就找不到,把他放在Datalist外面就能找到,这是怎么回事??
      

  5.   

    查找HiddenField
    protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            HiddenField hd = (HiddenField)DataList1.FindControl("hc2");//1 DataList中只有1个隐藏字段
            for (int i = 0; i < DataList1.Items.Count; i++)//1 DataList每个Item中只都有1个隐藏字段
            {
                HiddenField hf = (HiddenField)DataList1.Items[i].FindControl("hc2"); 
            }
        }
      

  6.   

    放在datalist中 它的客户端输出id会变的,
    <input type="hidden" name="DataList1$ctl07$hc2" id="DataList1_hc2_7" value="NT AUTHORITY\NETWORK SERVICE">
    上面是真正生成到页面的html代码
      

  7.   

    应该是这样子的把 
    var id = document.getElementById("hc2").value;asp:HiddenField 是服务器控件吧
      

  8.   

    放在循环里面,会自动解析出新的ID,你查看页面源码就可以看到,还用hc2去捕获的话,是无法正常获取的你可以ItemDataBound事件中去获取,如楼上