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

Disabling asp button when no items selected in list box

如果没有在列表框中选择任何项目,我希望我的按钮被禁用。我将启用按钮设置为 false。 When an item is selected the button does enable true, however, after the button is enabled it will not disable when there no list items selected.

后面的代码:

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;
        }
    }
}

试试这个:

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

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

但这不是此类功能的最佳解决方案,最好使用一些 javascript 代码来 enable/disable 您的按钮。

编辑(最小解决方案):

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

}

您还应该将 ListBoxAutoPostBack 属性 设置为 true 并且还必须设置按钮的 EnableViewStateListBoxtrue.