取消选中c#中复选框列表中的所有项目

时间:2013-11-20 09:43:42

标签: c# asp.net checkboxlist

我的ascx文件中有这个复选框:

<asp:CheckBoxList ID="chk" runat="server" RepeatLayout="Table" RepeatDirection="Horizontal" RepeatColumns="1">

我希望有一个选项可以在列表中选择无选项。但我的复选框列表默认选择第一个选项。当我取消选中它并保存并加载页面时,选择第一个选项。

我使用此代码取消选择但不工作:

if (string.IsNullOrEmpty(chk.SelectedValue))
        {
            foreach (ListItem item in chk.Items)
            {
                item.Selected = false;

            }
            chk.SelectedIndex = -1;
        }

我在我的页面的Page_Load和Page_PreRender中使用此代码。和chk.SelectedValue为null或为空。但是第一件物品被罚了

我将此代码用于绑定数据到checkboxlist:

 var it = new ListItem {Text = arr1[0], Value = arr1[1];
 chk.Items.Add(it);

4 个答案:

答案 0 :(得分:4)

你的代码毫无意义。您正在检查是否未选择任何项目(string.IsNullOrEmpty(chk.SelectedValue)),然后您要取消全选。

我认为你想要相反:

if (chk.SelectedIndex != -1)   // you can also use chk.SelectedValue != "", default is an empty string ("")
{
    //foreach (ListItem item in chk.Items)
    //{
    //    item.Selected = false;
    //}
    chk.SelectedIndex = -1;
}

但是,循环是多余的,因为SelectedIndex = -1;在一个语句中执行相同的操作。

答案 1 :(得分:3)

呼叫:

CheckBoxList1.ClearSelection(); 

on pageload。

答案 2 :(得分:0)

for (int i = 0; i< chk.Items.Count; i++)
{
     chk.SetItemChecked(i, false);
}
//chk.SelectedIndex = -1;

答案 3 :(得分:0)

这帮助我解决了取消选中 checkboxlist C# 的所有选中项的问题(也在本文的标题中): 取消选中c#中checkboxlist select的所有项目 谢谢卢卡斯·鲍姆!

        for (int i = 0; i < chk.Items.Count; i++)
        {
            chk.SetItemChecked(i, false);
        }