<input id="ckb" type="checkbox" name='ckbName' value='<%# Eval("id")%>' /> 
我用的不是服务器控件checkbox.   
 foreach (RepeaterItem Item in Repeater1.Items)
 {
            CheckBox chk = (CheckBox)Item.FindControl("ckbIndex");
           if (chk.Checked)
           {
                //
           }
}
用上面的方法判断  报异常 未将引用设置到对象的实例!
困扰我很久了! 哪位大虾 帮帮我啊。

解决方案 »

  1.   

    <input id="ckb" type="checkbox" runat="server" name='ckbName' value='<%# Eval("id")%>' />  
      

  2.   

     CheckBox chk = (CheckBox)Item.FindControl("ckbIndex");要求你的CheckBox必须是服务器控件 所以强转失败
    推荐使用服务器控件 即<asp:CheckBox runat="server" ID="cbIndex"...
    问题自然而解!
      

  3.   

     <script type="text/javascript">
            function SelectBox() {
                var a = document.getElementsByTagName('INPUT');
                for (var i = 0; i < a.length; i++) {
                    if (a[i].type == "checkbox") {
                        // 这里判断是否选中了                }
                }
            }
        </script>
      

  4.   

    不是服务器控件的话,要加上runat=“server”,使其成为服务器控件,要不然后台cs代码里怎么能找到这个checkbox呢。
      

  5.   


    使用服务器控件!我也知道做,现在我就是不想用服务器控件了。
    加了个runat = "server" . 此控件的本质还是HTML的。也没有转变成服务器控件!
      

  6.   


    $("#chSelectall").click(function() {
                    $(":checkbox").each(function() {
                          $(this).attr("checked", $("#chSelectall").attr("checked"));
                    })
                })
      

  7.   


    $("#btnOK").click(function() {
                    var list = new Array();
                    $(":checkbox:checked").each(function(i) {
                        list[i] = $(this).attr("name");
                    })
                })
    这个list数组就是取到了选中的值
      

  8.   


    我是说 我给你写过列子的,怎样获取到选中 checkbox 的value
      

  9.   

    控件名称错了吧
    <input id="ckb" type="checkbox" name='ckbName' value='<%# Eval("id")%>' />  CheckBox chk = (CheckBox)Item.FindControl("ckbIndex");应该是:
    CheckBox chk = (CheckBox)Item.FindControl("ckb");
      

  10.   

    加个属性 runat="server" 这样后台就能取到值了
      

  11.   

    恩,不会吧,难道你repeater放在母板页中了?要不然你那种写法怎么会根据ID找不到控件呢?
      

  12.   

    你获得选中的 checkbox 后想做什么
      

  13.   

    foreach( RepeaterItem item in this.Repeater1.Items )
    {
    HtmlInputCheckBox check = (HtmlInputCheckBox)item.FindControl("chkSelect");
    if(check != null )
    {
    }

    <input type="checkbox" name='ckbName' value='<%# Container.DataItem%>' /><%# Container.DataItem%>
    string s=Request.Form["ckbName"];
      

  14.   


    请教一下:这样做,可以找到那个控件了! 但是
     HtmlInputCheckBox check = (HtmlInputCheckBox)Item.FindControl("ckb");
     if (check != null)
     {
           Response.Write(Request.Form["ckbName"].ToString());
     }
     Request.Form["ckbName"]   改成这样之后,取值就报异常了。  不改之前是可以的。
    Response.Write(Request.Form["ckbName"].ToString());System.NullReferenceException: 未将对象引用设置到对象的实例。
      

  15.   

    加上runat="server"后,checkbox的name会变掉,所以用Request.Form["ckbName"]是取不到的,改成:
    if (check.Checked)
      Response.Write(check.Value);
      

  16.   


    但是如果要进行批量删除了。。  check.Value 能取到多个Id吗?
      

  17.   


    取是取到了,现在的问题是:如何在服务器端判断checkbox是否被选中,然后给出提示!你还没选了想干嘛?