从Asp.net ListBox中删除所选项目

时间:2012-02-23 17:07:13

标签: c# asp.net listbox

我需要从asp.net中的ListBox中删除所选项。我一直在寻找Windows窗体的示例,但不是asp.net。

我有一个按钮点击事件,可以将所有项目从一个列表框复制到另一个列表框。我希望能够从第二个列表框中选择单个项目,然后单击按钮将其删除。

protected void btnAddAllProjects_Click(object sender, EventArgs e)
{

    foreach (ListItem item in lstbxFromUserProjects.Items)
    {
        lstBoxToUserProjects.Items.Add(item.ToString());
    }


}

    protected void btnRemoveSelected_Click(object sender, EventArgs e)
    {}

6 个答案:

答案 0 :(得分:13)

如果您只想清除所选项目,请使用以下代码:

        ListBox1.ClearSelection();

        //or

        foreach (ListItem listItem in ListBox1.Items)
        {
            listItem.Selected = false;
        }

如果您想要实际删除项目的内容,那么这就是您的代码..

        List<ListItem> itemsToRemove = new List<ListItem>();

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

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

答案 1 :(得分:1)

尝试此操作以从列表框中删除所选项目。

 protected void Remove_Click(object sender, EventArgs e)
{
    while (ListBox.GetSelectedIndices().Length > 0)
    {
        ListBox.Items.Remove(ListBox.SelectedItem); 
    }
}

答案 2 :(得分:0)

我尝试了一些实验,下面的技术有效。它不是很有效,因为它在每次迭代时重新查询列表框,但它完成了工作。

        while (myListBox.SelectedIndex != -1)
        {
            ListItem mySelectedItem = (from ListItem li in myListBox.Items where li.Selected == true select li).First();
            myListBox.Items.Remove(mySelectedItem);
        };

答案 3 :(得分:0)

为什么不简单地使用Items.Remove并传递所选的项目字符串值。

ListBox1.Items.Remove(ListBox1.SelectedItem.ToString());

答案 4 :(得分:-2)

protected void ButtonRemoveSelectedItem_Click(object sender, EventArgs e)
{
    int position = 0;

    for (byte i = 0; i < ListBox2.Items.Count; i++)
    { 
        position = ListBox2.SelectedIndex ;
    }

    ListBox2.Items.RemoveAt(position);
}

答案 5 :(得分:-2)

int a = txtbuklist.SelectedIndex;
txtbuklist.Items.RemoveAt(a);