2013-09-25 177 views
1

我有一个类似的CheckBoxList以下选中/取消选中CheckBoxList的所有项目在ASP.NET

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     CheckBoxList1.Items.Add(new ListItem("Check/Uncheck All","0")); 
     CheckBoxList1.Items.Add(new ListItem("A","1")); 
     CheckBoxList1.Items.Add(new ListItem("B","2")); 
     CheckBoxList1.Items.Add(new ListItem("C", "3")); 
     CheckBoxList1.Items.Add(new ListItem("D", "4")); 
    }   
} 

我想只要第一项检查,检查的项目,只要选中要取消剩下的其余部分。用户也可以分别选择每个项目。

我想用后面没有JavaScript或JQuery的代码来做这件事。

感谢您的任何建议!

回答

3

试试这个

protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    string result = Request.Form["__EVENTTARGET"]; 
    int index1 = int.Parse(result.Substring(result.IndexOf("$") + 1)); 
    if (index1 == 0) 
    { 
     bool tf = CheckBoxList1.Items[index1].Selected ? true : false; 
     CheckUncheckAll(tf); 
    } 
} 
void CheckUncheckAll(bool tf) 
{ 
    foreach (ListItem item in CheckBoxList1.Items) 
    { 
     item.Selected = tf; 
    } 
} 
0

在.aspx页面中请加自动回= “真” 为CheckBoxList的

那么请加入本次活动。它的工作我已经检查过了。

Private Sub CheckBoxList1_SelectedIndexChsanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBoxList1.SelectedIndexChanged 
    Dim result As String = Request.Form("__EVENTTARGET") 
    Dim checkedBox As String() = result.Split("$"c) 
    Dim index As Integer = Integer.Parse(checkedBox(checkedBox.Length - 1)) 
    If CheckBoxList1.Items(index).Text = "Check/Uncheck All" Then 
     Dim Chkbool As Boolean = CheckBoxList1.Items(index).Selected 
     For Each item In CheckBoxList1.Items 
      item.selected = Chkbool 
     Next 
    End If 
End Sub 
0

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

  1. 你的CheckBoxList已经allowSelectAll
  2. 您添加了一个列表项到您的复选框列表,让用户选择 所有的所有

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

你只需要下面的代码

<script> 
    $('.allowSelectAll :checkbox[value=All]').click(function() { 
     var toggle = this.checked; 
     $(this).closest('.allowSelectAll').find(":checkbox").attr("checked", toggle); 
    }); 
</script> 

在下面的代码尖晶石,我有4个复选框列出

<div > 
<label>Experience 1</label> 
<asp:CheckBoxList ID="chklstExp1" runat="server" CssClass="allowSelectAll"> 
</asp:CheckBoxList> 

<label>Experience 2</label> 
<asp:CheckBoxList ID="chklstExp2" runat="server" CssClass="allowSelectAll"> 
</asp:CheckBoxList> 

<label>Experience 3</label> 
<asp:CheckBoxList ID="chklstExp3" runat="server" CssClass="allowSelectAll"> 
</asp:CheckBoxList> 

<label>Location</label> 
<asp:CheckBoxList ID="chklstLocation" runat="server" CssClass="allowSelectAll"> 
</asp:CheckBoxList> 

<asp:Button runat="server" ID="btnShowReport" OnClick="btnShowReport_Click" Text="Show Report"/> 
</div> 
1
for(int index = 0; index < checkedListBox.Items.Count; ++index) 
{ 
    checkedListBox.SetItemChecked(index, false); 
} 

好运!

1

有了这段代码,您可以从后面的C#代码访问复选框,并且可以选中/取消选中它们,甚至启用/禁用它们。希望它可以帮助。

foreach (ListItem item in CheckBoxList.Items) { 
    item.Selected = true; 
    item.Enabled = true; 
} 
0

为了使项目假,你需要做的:

checkList.ClearSelection(); 

为了使物品为真:

foreach (var item in checkList.Items.Cast<ListItem>().Where (li => li.Value == "1" || li.Value == "3" || li.Value == "5")) 
{ 
    item.Selected = true; 
} 
相关问题