C# 从ASP列表框获取所有选定值

C# 从ASP列表框获取所有选定值,c#,asp.net,webforms,listbox,C#,Asp.net,Webforms,Listbox,我有一个ASP列表框,它的SelectionMode设置为“Multiple”。是否有任何方法可以检索所有选定的元素,而不仅仅是最后一个 <asp:ListBox ID="lstCart" runat="server" Height="135px" Width="267px" SelectionMode="Multiple"></asp:ListBox> 使用lstC

我有一个ASP列表框,它的SelectionMode设置为“Multiple”。是否有任何方法可以检索所有选定的元素,而不仅仅是最后一个

<asp:ListBox ID="lstCart" runat="server" Height="135px" Width="267px" SelectionMode="Multiple"></asp:ListBox>

使用
lstCart.SelectedIndex
只返回最后一个元素(如预期的那样)。有什么东西可以给我所有选择的吗?

您可以使用and循环查看结果,然后通过items集合访问每个结果。或者,您可以遍历所有项目并检查它们的属性

//GetSelectedDices
foreach(列表框1.GetSelectedIndices()中的int i)
{
//列表框1.项目[i]。。。
}
//物品收集
foreach(ListBox1.Items中的ListItem项)
{
如果(选定项)
{
//项目。。。
}
}
//LINQ over Items集合(必须转换项目)
var query=来自ListBox1.Items中的ListItem项,其中item.Selected选择项;
foreach(查询中的ListItem项)
{
//项目。。。
}
//LINQ lambda语法
var query=ListBox1.Items.Cast()。其中(item=>item.Selected);

使用列表框的GetSelectedIndices方法

  List<int> selecteds = listbox_cities.GetSelectedIndices().ToList();

        for (int i=0;i<selecteds.Count;i++)
        {
            ListItem l = listbox_cities.Items[selecteds[i]];
        }
List selecteds=listbox\u cities.getselecteddinces().ToList();

对于(int i=0;i尝试使用我使用VB.NET创建的代码:

Public Shared Function getSelectedValuesFromListBox(ByVal objListBox As ListBox) As String
    Dim listOfIndices As List(Of Integer) = objListBox.GetSelectedIndices().ToList()
    Dim values As String = String.Empty

    For Each indice As Integer In listOfIndices
        values &= "," & objListBox.Items(indice).Value
    Next indice
    If Not String.IsNullOrEmpty(values) Then
        values = values.Substring(1)
    End If
    Return values
End Function
我希望有帮助

Public Shared Function getSelectedValuesFromListBox(ByVal objListBox As ListBox) As String
    Dim listOfIndices As List(Of Integer) = objListBox.GetSelectedIndices().ToList()
    Dim values As String = String.Empty

    For Each indice As Integer In listOfIndices
        values &= "," & objListBox.Items(indice).Value
    Next indice
    If Not String.IsNullOrEmpty(values) Then
        values = values.Substring(1)
    End If
    Return values
End Function