我的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);
答案 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);
}