我的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或为空。但第一项被che

我使用以下代码将数据绑定到复选框列表:

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

最佳答案

您的代码毫无意义。您正在检查是否未选择任何项目(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;在一条语句中执行相同的操作。

10-04 17:54