Getting all selected values from an ASP ListBox

后端 未结 3 1648
失恋的感觉
失恋的感觉 2020-12-03 13:49

I have an ASP ListBox that has the SelectionMode set to "Multiple". Is there any way of retreiving ALL selected elements and not just the last one?

         


        
相关标签:
3条回答
  • 2020-12-03 14:22

    use GetSelectedIndices method of listbox

      List<int> selecteds = listbox_cities.GetSelectedIndices().ToList();
    
            for (int i=0;i<selecteds.Count;i++)
            {
                ListItem l = listbox_cities.Items[selecteds[i]];
            }
    
    0 讨论(0)
  • 2020-12-03 14:31

    try using this code I created using 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
    

    I hope it helps.

    0 讨论(0)
  • 2020-12-03 14:37

    You can use the ListBox.GetSelectedIndices method and loop over the results, then access each one via the items collection. Alternately, you can loop through all the items and check their Selected property.

    // GetSelectedIndices
    foreach (int i in ListBox1.GetSelectedIndices())
    {
        // ListBox1.Items[i] ...
    }
    
    // Items collection
    foreach (ListItem item in ListBox1.Items)
    {
        if (item.Selected)
        {
            // item ...
        }
    }
    
    // LINQ over Items collection (must cast Items)
    var query = from ListItem item in ListBox1.Items where item.Selected select item;
    foreach (ListItem item in query)
    {
        // item ...
    }
    
    // LINQ lambda syntax
    var query = ListBox1.Items.Cast<ListItem>().Where(item => item.Selected);
    
    0 讨论(0)
提交回复
热议问题