web-dev-qa-db-fra.com

Obtenir toutes les valeurs sélectionnées à partir d'un ASP ListBox

J'ai un ASP Listbox qui a le paramètre SelectionMode défini sur "Multiple". Existe-t-il un moyen de retrouver tous les éléments sélectionnés et non seulement le dernier?

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

À l'aide de lstCart.SelectedIndex vient de retourner le dernier élément (comme prévu). Y a-t-il quelque chose qui me donnera tous choisi?

Ceci est pour un formulaire Web.

19
Evan Fosmark

Vous pouvez utiliser la méthode - ListBox.GetSelectedindinced et boucle sur les résultats, puis accédez à chacun via la collection d'éléments. Alternativement, vous pouvez faire boucler tous les articles et vérifier leur propriété sélectionnée .

// 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);
54
Ahmad Mageed

uTILISEZ GETSELLECTEDING MODE DE LISTEBOX

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

        for (int i=0;i<selecteds.Count;i++)
        {
            ListItem l = listbox_cities.Items[selecteds[i]];
        }
3
Niloofar

essayez d'utiliser ce code que j'ai créé à l'aide de 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

J'espère que ça vous aide.

1
V1NNY