在列表框中未选择任何项目时禁用asp按钮

时间:2016-02-21 18:47:51

标签: c# asp.net webforms

如果在列表框中没有选择任何项目,我希望我的按钮被禁用。我有按钮Enable设置为false。选择某个项目时,该按钮会启用true,但是,在启用该按钮后,如果没有选择列表项,它将不会禁用。

代码背后:

protected void Button2_Click(object sender, EventArgs e)
{
    List<ListItem> itemsRemove = new List<ListItem>();

    foreach (ListItem listItem in ListBox1.Items)
    {
        if (listItem.Selected)
            itemsRemove.Add(listItem);

    }

    foreach (ListItem listItem in itemsRemove)
    {
        ListBox1.Items.Remove(listItem);
    }


}

protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    foreach (ListItem item in ListBox1.Items)
    {
        if (item.Selected)
        {
            Button2.Enabled = true;
        }
    }
}

2 个答案:

答案 0 :(得分:4)

试试这个:

protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    Button2.Enabled = false;

    foreach (ListItem item in ListBox1.Items)
    {
        if (item.Selected)
        {
            Button2.Enabled = true;
        }
    }
}

但它不是这种功能的最佳解决方案,最好使用一些JavaScript代码来启用/禁用您的按钮。

编辑(最小解决方案):

protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    Button2.Enabled = ListBox1.Items.Any(x => x.Selected);

}

答案 1 :(得分:0)

您还应该将AutoPostBack的{​​{1}}属性设置为ListBox,并将true设置为两个按钮,EnableViewState必须设置为ListBox