-1

我正在从数据库表中填充 CheckBoxList。根据要求,所有值都应取消选中为默认值。即使我编写了代码来做同样的事情,第一个值总是被检查,我不知道为什么。这是代码:

for (int i = CheckBoxList1.Items.Count - 1; i >= 0; i--)
    CheckBoxList1.Items.RemoveAt(i);
while (rd.Read())
{
    System.Web.UI.WebControls.ListItem item = new ListItem(Convert.ToString(rd["FullName"]), Convert.ToString(rd["ContactID"]));
    CheckBoxList1.Items.Add(item);
}
con.Close();
for (int i = CheckBoxList1.Items.Count - 1; i >= 0; i--)
    CheckBoxList1.Items[i].Selected = false;      

一旦页面被发回,只有这样所有的值都被取消选中。欢迎任何帮助和建议,谢谢。

4

6 回答 6

0

试试这个: CheckBoxList1.Items[i].Checked = false;

于 2012-06-19T08:24:09.993 回答
0
for (int i = CheckBoxList1.Items.Count - 1; i >= 0; i--)
          CheckBoxList1.Items[i].Selected = false;

只是一个想法,但是;这个循环真的有效吗?因为您的停止条件是当 i 大于 0 时。从循环开始就应该是这样。我认为你的停止条件应该是 i=0。

就像 bdz 说的,使用 items[].checked 代替。

于 2012-06-19T08:26:13.723 回答
0

尝试更改您的这一部分:

 for (int i = CheckBoxList1.Items.Count - 1; i >= 0; i--)
          CheckBoxList1.Items[i].Selected = false;  

对此:

 foreach(ListItem i in CheckBoxList1.Items)
 {
     i.Selected = false;
 }
于 2012-06-19T11:57:01.607 回答
0

这是因为UpdatePanel发生的。一旦我删除它,代码就可以毫无问题地开始工作。

于 2012-06-25T06:14:33.903 回答
0

CheckBoxList1.ClearSelection()

这适用于 Asp.Net Framework 4.5 我没有在其他框架上尝试过

于 2013-02-21T09:18:47.987 回答
0
foreach (int index in this.CheckedListBox1.CheckedIndices)
{
    this.CheckedListBox1.SetItemChecked(index, false);
}
于 2013-05-17T17:31:55.937 回答