选中/取消选中ASP.NET中CheckBoxList中的所有项

时间:2013-09-25 16:13:02

标签: c# asp.net

我有一个CheckBoxList,如下面的

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的情况下使用代码执行此操作。

感谢您的任何建议!

7 个答案:

答案 0 :(得分: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;
    }
}

答案 1 :(得分:1)

for(int index = 0; index < checkedListBox.Items.Count; ++index)
{
    checkedListBox.SetItemChecked(index, false);
}
祝你好运!

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

在.aspx页面中的

请为checkboxlist

添加autopostback =“true”

然后请添加此活动。它的工作我检查了它。

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

答案 4 :(得分:0)

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

  1. 您的CheckBoxList有 allowSelectAll
  2. 您在复选框列表中添加了一个ListItem,以允许用户选择 全部具有全部
  3. 的值
      

    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>
    

答案 5 :(得分: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;
}

答案 6 :(得分:0)

  

for Check all

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

取消全部取消

 CheckBoxList.ClearSelection();