Repeater内部CheckBox全选

一、HTML代码:

<input name="CheckAll" type="checkbox" value="" onclick="javascript:FormSelectAll('form1','CheckBox',this);" />      //用于选择是否全选的复选框,用javascript函数“FormSelectAll('form1','CheckBox',this);  ”实现全选效果,具体参数下文在详细解释

<form id="form1" runat="server">
  <asp:Repeater ID="RptList" runat="server" >
    <ItemTemplate>
      <input name="CheckBox" id="CheckBox" runat="server" type="checkbox" value='<%# DataBinder.Eval(Container.DataItem, "F_JobID")%>' />    //使用Repeater 控件绑定checkbox控件,用于选择单项内容
    </ItemTemplate>
  </asp:Repeater>
</form>

二、Javascript实现全选效果:

function FormSelectAll(formID,EleName,e) //formID:目标复选框组所在的form表单的ID属性;Elename:目标复选框组共同的Name属性;e:用于标识是否全选的复选框自身,用户判断是“全选”还是“全不选”
{
    var Elements = document.getElementById(formID).elements; //获取目标复选框组所在的Form表单
    for (var i = 0; i < Elements.length;i++)
    {
        if (Elements[i].type == "checkbox" && Elements[i].name.indexOf(EleName) >= 0)   //根据对象类型和对象的name属性判断是否为目标复选框
        {
            Elements[i].checked = e.checked;   //根据用于控制的复选框的选中情况判断是否选中目标复选框
        }
    }
}

三、服务器端执行代码:

for (int i = 0; i < this.RptList.Items.Count; i++)              //根据Repeater 控件的情况执行循环判断目标复选框是否被选中
{
  HtmlInputCheckBox CB = (HtmlInputCheckBox)this.RptList.Items[i].FindControl("CheckBox");    //获取一个目标复选框情况
  if (CB.Checked == true)                       //判断该复选框是否被选中
   {
    。。。。。            //程序处理代码
  }
}

原文地址:https://www.cnblogs.com/yasin/p/1518725.html