我做了一个前台用repeater显示数据使用全选做删除
  前台显示的checkbox 控件需要到后台判断是否有权限删除,如果有页面显示checkbox
 后台方法输出
 return "<input type='checkbox' name='CkChecked' id='CkChecked' runat='server'  value='" + wid + "'>";
前台调用
  
<td>
                                                <%# GetIsclaimStr(DataBinder.Eval(Container.DataItem, "Isclaim").ToString(), DataBinder.Eval(Container.DataItem, "WtEndtime").ToString())%>
                                            </td>但是我点击删除的时候一直得不到checkbox控件对象后台代码
    protected void Unnamed1_Click(object sender, EventArgs e)
    {
        foreach (RepeaterItem item in this.RptWtList.Items)
        {
            object cb= null;
            cb = item.FindControl("CkChecked");
            //if (chkItem == null)
            //    continue;
            //if (chkItem.Checked)
            //{
            //    //被勾选
            //    Message.ShowMessage("OK");
            //}
        }
    }求解

解决方案 »

  1.   

    控件是需要注册的。
    你在前台直接用控件。通过visible属性控制是否显示。
      

  2.   

    你前台:<asp:Repeater ID="rpt" runat="server">
          <ItemTemplate>
               <tr>
                  <td>
                <input id='<%#Eval("ID")%>' type="checkbox" value='<%#Eval("ID")%>' runat="server"  Visible='<%#IsVisible(<%#Eval("ID"%>)%>'/>
                   </td>
                  </tr>
           </ItemTemplate>
          <ItemStyle  HorizontalAlign="Center" />
    </asp:Repeater>后台根据写一个IsVisible方法,返回一个bool值就行了
    public bool IsVisible(string ID)
    {
        bool flag = false;
        //你的权限判断,然后返回 bool值即可,控制前面的checkbox是否显示
        return flag;
    }
      

  3.   

    前台<asp:Repeater ID="repShopId" runat="server">
                                <ItemTemplate>
                                    <tr>
    <td>
    <input name="chkID" type="checkbox" value='<%# Eval("Id") %>' />
    </td>
    </tr></asp:Repeater>后台string ids= HttpContext.Current.Request.Form["chkID"].ToString();
    ids是一个用","分隔的字符串
    删除的SQL可以直接delete 表名 where id in(ids);
      

  4.   

    01.一、HTML代码:   
    02.  
    03.<input name="CheckAll" type="checkbox" value="" onclick="javascript:FormSelectAll('form1','CheckBox',this);" />      //用于选择是否全选的复选框,用javascript函数“FormSelectAll('form1','CheckBox',this);  ”实现全选效果,具体参数下文在详细解释   
    04.  
    05.<form id="form1" runat="server">   
    06.  <asp:Repeater ID="RptList" runat="server" >   
    07.    <ItemTemplate>   
    08.      <input name="CheckBox" id="CheckBox" runat="server" type="checkbox" value='<%# DataBinder.Eval(Container.DataItem, "F_JobID")%>' />    //使用Repeater 控件绑定checkbox控件,用于选择单项内容   
    09.    </ItemTemplate>   
    10.  </asp:Repeater>    
    11.</form>   
    12.  
    13.二、Javascript实现全选效果:   
    14.  
    15.function FormSelectAll(formID,EleName,e) //formID:目标复选框组所在的form表单的ID属性;Elename:目标复选框组共同的Name属性;e:用于标识是否全选的复选框自身,用户判断是“全选”还是“全不选”   
    16.{   
    17.    var Elements = document.getElementById(formID).elements; //获取目标复选框组所在的Form表单   
    18.    for (var i = 0; i < Elements.length;i++)   
    19.    {   
    20.        if (Elements[i].type == "checkbox" && Elements[i].name.indexOf(EleName) >= 0)   //根据对象类型和对象的name属性判断是否为目标复选框   
    21.        {   
    22.            Elements[i].checked = e.checked;   //根据用于控制的复选框的选中情况判断是否选中目标复选框   
    23.        }   
    24.    }   
    25.}   
    26.  
    27.三、服务器端执行代码:   
    28.  
    29.for (int i = 0; i < this.RptList.Items.Count; i++)              //根据Repeater 控件的情况执行循环判断目标复选框是否被选中   
    30.{    
    31.  HtmlInputCheckBox CB = (HtmlInputCheckBox)this.RptList.Items[i].FindControl("CheckBox");    //获取一个目标复选框情况   
    32.  if (CB.Checked == true)                       //判断该复选框是否被选中   
    33.   {   
    34.    。。            //程序处理代码   
    35.  }   
    36.}  
    http://blog.csdn.net/lsy51213/archive/2010/04/08/5463205.aspx
      

  5.   

     Repeater 里面
     <input type='checkbox' id='ChkSelect' class='nogrid' runat="server"  value='<%#eval_r("ItemID")%>'/> 
    Repeater 外面
    <input id="Checkbox1" type="checkbox" onclick='selectAll()' />
     <asp:Button ID="Button1" runat="server" Text="Delete" OnClick="Button1_Click" />
    <script language="javascript" type="text/javascript" >
            ///选中所有的CheckBox
             function selectAll()
             {
                 // 获得用户页面中的所有的 输入功能的控件getElementById("ChkSelect").
                 var checkbox = document.getElementsByTagName_r("input");
                 if(checkbox[0].checked == true)
                 {
                     for (var i=0; i<checkbox.length; i++)
                        checkbox[i].checked = false;
                 }
                 else
                 {
                     for (var i=0; i<checkbox.length; i++)
                         checkbox[i].checked = true;
                 }
             }
         </script>protected void Button1_Click(object sender, EventArgs e)
             {
                 string s = "";
                 for (int i = 0; i < this.Repeater1.Items.Count; i++)
                 {
                     //客户端
                     HtmlInputCheckBox chb = (HtmlInputCheckBox)this.Repeater1.Items[i].FindControl("ChkSelect");
                     //CheckBox chb = (CheckBox)this.Repeater1.Items[i].FindControl("CheckBox2");  //服务器端            
                     if (chb.Checked == true) 
                    {
                         s = s + chb.Value;//chb.Text //服务器端
                     }
                 }
                 Response.Write(s);
             }
      

  6.   

    已经测试6楼的好用
       var checkbox = document.getElementsByTagName_r("input");
    修正下   var checkbox = document.getElementsByTagName("input");