如何在ListBox中选择多个项目

时间:2014-09-22 12:18:19

标签: asp.net vb.net

如何在VB.NET代码中选择ListBox中的多个项目。 例如:
我有第1,5,8项 - 然后我想在页面加载中的ListBox中选择那些项目

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

2 个答案:

答案 0 :(得分:2)

首先需要确保可以选择多个项目(默认为单选)。因此,请使用SelectionMode - 属性:

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

在ASP.NET中 - ListBox没有SelectedIndices属性或类似的东西。因此,您需要循环它们并相应地设置ListItem的{​​{1}}属性:

Selected

请务必仅string[] selectedValues = { "1", "5", "8" }; // from session or whatever foreach (ListItem item in listBox1.Items) item.Selected = selectedValues.Contains(item.Value); 而不是if(!Page.IsPostBack)中的每次回发。否则,您将覆盖用户更改,Page_Load - 事件将不会触发。

答案 1 :(得分:1)

要启用多选,您需要在Windows应用程序中将selection mode设置为多个

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

如果是 ASP listBox ,那么您可以静态选择项目

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

如果您想设置动态表示您可以使用

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