2015-06-09 5 views
1

на моей странице ASPX Я имеюПолучить текст из выпадающего списка в VB.net

<asp:listbox class="myClass" id="lbFamilies" OnSelectedIndexChanged="lbFamilies_SelectedIndexChanged" runat="server" SelectionMode="Multiple" 
            Height="137px" AutoPostBack="True" EnableViewState="True"></asp:listbox> 

И следующее в моем коде

Protected Sub lbFamilies_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) 

То, что я пытаюсь сделать, чтобы получить текст из выбранный элемент, но я не могу понять, как это сделать

ответ

1

Вы просто должны использовать listbox.SelectedItem.Text property:

Protected Sub lbFamilies_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) 
    Dim text As String = Nothing 
    If lbFamilies.SelectedItem IsNot Nothing Then 
     text = lbFamilies.SelectedItem.Text 
    End If 
End Sub 

Спасибо, если у меня есть MULTISELECT как бы я пройти через отдельные элементы

Тогда вы должны использовать цикл:

Protected Sub lbFamilies_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) 
    Dim allSelectedTexts As New List(Of String) 
    For Each item As ListItem In lbFamilies.Items 
     If item.Selected Then 
      allSelectedTexts.Add(item.Text) 
     End If 
    Next 
    ' following is just a bonus if you want to concatenate them with comma ' 
    Dim result = String.Join(",", allSelectedTexts) 
End Sub 

или с LINQ однострочника:

Protected Sub lbFamilies_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) 
    Dim result = String.Join(",", From item In lbFamilies.Items.Cast(Of ListItem)() 
            Where item.Selected 
            Select item.Text) 
End Sub 
+0

Спасибо, если у меня есть мультиселекция, как бы я прошел через отдельные элементы – Kevin

+0

@Kevin: я отредактировал мой answe р. –

Смежные вопросы