我正在使用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"
答案 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
获取用户选择的值。