如何从后端代码(VB)中选择列表框中的多项?

时间:2016-05-20 13:27:55

标签: asp.net vb.net

我正在使用VB。如何从backend代码中选择列表框中的多项?

下面,我有一个列表框,用户可以在其中选择多项。

<asp:ListBox ID="lb" SelectionMode="multiple" runat="server"  DataValueField="dv">
        <asp:ListItem>red r</asp:ListItem>
        <asp:ListItem>blue b</asp:ListItem>
        <asp:ListItem>green g</asp:ListItem>
</asp:ListBox>

到目前为止我已经制作了什么:

如何设置,以便选择“蓝色b”和“绿色g”的值?我尝试了setSelected,但不支持此方法

lb.SetSelected(1, True)
lb.SetSelected(2, True)

我也在下面试过这种作品。它确实选择了1个值,但我需要能够选择多个值。

lb.Text = "blue b"
lb.Text = "green g"

我也尝试了这个,它没有选择任何值。

lb.Text = "blue b green g"

2 个答案:

答案 0 :(得分:1)

尝试使用此循环。您需要更改变量的硬编码蓝色b值。我回复了一个类似的帖子,我认为是.Net而不是ASP.net。在ASP.net中没有SetSelected方法。

For Loop:

For i As Integer = 0 To listbox.Items.Count - 1 Step 1
  If listbox.Items(i).Value = "blue b" Then
      listbox.Items(i).Selected = true
  End If
Next

每个循环:

For Each item As ListItem In ListBox.Items
    If item.Value = "blue b" Then
        item.Selected = True
    End If
Next

你也可以在没有循环的情况下尝试这个:
我想这是首选方法,因为您可以遍历您想要选择的值列表并使用这行代码。您需要更改的是FindByValue中的字符串。

listbox.Items(listbox.Items.IndexOf(listbox.Items.FindByValue("blue b"))).Selected = True

答案 1 :(得分:0)

这应该可以解决问题:

lb.Items(1).Selected = True
lb.Items(2).Selected = True

在回发代码中,使用lb.GetSelectedIndices获取用户选择的值。