在asp.net CheckBoxList中选择所有项目

ASP.NET和C#。

我想要一个带有“全选”项目的CheckboxList。

  • 选择此特定项目时,也将选择所有其他项目。
  • 当从该项目中删除选择时,它也将从所有其他项目中删除。
  • 无论“全选”项目的选择状态如何,选中/取消选中任何其他项目只会对该特定项目产生影响。

我正在寻找一个jquery解决方案。

这是我的代码隐藏中的数据绑定代码:

IList Centrals = new CentralProvider().GetAllCentralsAsList(); Centrals.Insert(0, new Central(){Central_ID = 999, Central_Name = "Select All"}); CentralChecks.DataSource = Centrals; CentralChecks.DataTextField = "Central_Name"; CentralChecks.DataValueField = "Central_ID"; CentralChecks.DataBind(); 

这是标记:

 

Centrals:

Centrals

请注意,页面上有多个复选框列表,因此任何解决方案都必须牢记这一点。

您可以使用任何复选框列表,只需将myCheckBoxList的cssclass添加到每个CheckBoxList控件:

 $('.myCheckBoxList :checkbox').eq(0).click(function() { var toggle = this.checked; $('.myCheckBoxList :checkbox').attr("checked", toggle); }); 

您可以单击“全选”来遍历所有ListItem。 并维护一个状态标志,以维护是否选中所有复选框

 if(boolAllChecked) { foreach (ListItem listItem in CentralChecks.Items) { listItem .Selected = false; } } else { foreach (ListItem listItem in CentralChecks.Items) { listItem .Selected = true; } } 

这是一个例子: http : //jsfiddle.net/VTgGA/

码:

 $('input:checkbox').click(function(){ var $this = $(this); if($this.attr('ref') != 'checkall'){ $(".select-all").attr('checked',false); } else { //Select All var $checked = $this.is(':checked'); $('input:checkbox').each(function(){ $(this).attr('checked',$checked); }) $(".select-all").attr('checked',$checked); } }) 

这是复选框的html:

        

扩展mdmullinax的精彩答案,我想出了这个“全选”行为的通用解决方案,如果任何其他选项未被取消,也会取消选择“全选”(即第一个)选项,并在勾选所有其他项目时重新选择“全选” 。

当我从ASP.Net服务器端控件(在页面的head部分注入脚本)中注入它时,它也会在窗口加载时执行。 最好是安全而不是抱歉:)

  $(window).load(function () { var cbs = $('.myCheckBoxList :checkbox'); cbs.eq(0).click(function () { var toggle = this.checked; cbs.attr('checked', toggle); }); cbs.slice(1).click(function () { if (!this.checked) { cbs.eq(0).attr('checked', false); } else { cbs.eq(0).attr('checked', cbs.slice(1).filter(':not(:checked)').length == 0); } }); }); 

有一种使用jquery在asp CheckBoxList中选择所有项的通用方法。 您可以使用select allfunction在表单上拥有尽可能多的CheckBoxList控件。 你只需要确定

  1. 你的CheckBoxList有allowSelectAll
  2. 您已将ListItem添加到复选框列表,以允许用户选择All的值为All

chkBoxList.Items.Insert(0,new ListItem(“All”,“All”));

你只需要以下代码

  

在下面的代码中我有4个复选框列表