4
votes

I need to remove the selected items from a ListBox in asp.net. I keep finding examples for windows forms but not for asp.net.

I have a button click event that copies all items from one listbox to another. I want to be able to select individual items from the second listbox and click a button to remove them.

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
How is your data bound to the ListBox? Do you have a List bounded to the list? Please post some codeAgustin Meriles

6 Answers

17
votes

If you just want to clear the selected items then use the code below:

        ListBox1.ClearSelection();

        //or

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

If you mean to what to actually remove the items, then this is the code for you..

        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
votes

Try this to remove selected items from list box.

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

I tried some experiments and the technique below works. It's not very efficient, in that it requeries the listbox on each iteration, but it gets the job done.

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

Why not simply use the Items.Remove and pass the selected item string value.

ListBox1.Items.Remove(ListBox1.SelectedItem.ToString());
-2
votes
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);
}
-2
votes
int a = txtbuklist.SelectedIndex;
txtbuklist.Items.RemoveAt(a);