Milli P
Milli P

Reputation: 17

how to select multiple items in ListBox

How can I select multiple item in ListBox in VB.NET code. Example:
I have item 1, 5, 8 - then I want to select those items in ListBox in page load

ListBoxSample item
Item “aa1” Value =1
Item “aa2” Value =2
Item “aa3” Value =3
Item “aa4” Value =4
Item “aa5” Value =5
Item “aa6” Value =6
Item “aa7” Value =7
Item “aa8” Value =8

Upvotes: 0

Views: 7343

Answers (2)

user3972104
user3972104

Reputation:

To enable multi selection you need to set the selection mode to multiple in windows application

 ListBox1.SelectionMode = SelectionMode.MultiSimple
 ListBox1.SetSelected(1, True)
 ListBox1.SetSelected(5, True)
 ListBox1.SetSelected(8, True)

If it is ASP listBox then you can statically selected items as

<asp:ListBox id="drop1" rows="3" runat="server" AutoPostBack="True">
    <asp:ListItem selected="true">Item 1</asp:ListItem>
    <asp:ListItem>Item 2</asp:ListItem>
    <asp:ListItem>Item 3</asp:ListItem>
    <asp:ListItem>Item 4</asp:ListItem>
    <asp:ListItem selected="true">Item 5</asp:ListItem>
    <asp:ListItem>Item 6</asp:ListItem>
    <asp:ListItem>Item 7</asp:ListItem>
    <asp:ListItem selected="true">Item 8</asp:ListItem>
</asp:ListBox>

If you want to set it dynamically means you can use

  drop1.SelectionMode = ListSelectionMode.Multiple
  drop1.Items(0).Selected = True
  drop1.Items(1).Selected = True
  drop1.Items(2).Selected = True

Upvotes: 1

Tim Schmelter
Tim Schmelter

Reputation: 460048

You first need to ensure that multiple items can be selected(default is single-selection). Therefore use the SelectionMode-property:

<asp:ListBox id="listBox1" runat="server" SelectionMode="Multiple">
    <asp:ListItem Value="1">aa1</asp:ListItem>
    <asp:ListItem Value="2">aa2</asp:ListItem>
    <asp:ListItem Value="3">aa3</asp:ListItem>
    <asp:ListItem Value="4">aa4</asp:ListItem>
    <asp:ListItem Value="5">aa5</asp:ListItem>
    <asp:ListItem Value="6">aa6</asp:ListItem>
    <asp:ListItem Value="7">aa7</asp:ListItem>
    <asp:ListItem Value="8">aa8</asp:ListItem>
</asp:ListBox> 

In an ASP.NET-ListBox there is no SelectedIndices property or something like that. So you need to loop them and set the ListItem's Selected property accordingly:

string[] selectedValues = { "1", "5", "8" };  // from session or whatever

foreach (ListItem item in listBox1.Items)
    item.Selected = selectedValues.Contains(item.Value);

Remember to do that only if(!Page.IsPostBack) and not on every postback in Page_Load. Otherwise you're overwriting the user-changes and the SelectedIndexChanged-event won't fire.

Upvotes: 1

Related Questions