net multiselect example dropdownlist asp c# asp.net listbox

multiselect - listbox asp net c# example



Obteniendo todos los valores seleccionados de un ListBox ASP (3)

Tengo un ListBox ASP que tiene el SelectionMode establecido en "Múltiples". ¿Hay alguna forma de recuperar TODOS los elementos seleccionados y no solo el último?

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

El uso de lstCart.SelectedIndex solo devuelve el último elemento (como se esperaba). ¿Hay algo que me dará todo seleccionado?

Esto es para un formulario web.


Puede usar el método ListBox.GetSelectedIndices y recorrer los resultados, luego acceder a cada uno a través de la colección de elementos. Alternativamente, puede recorrer todos los elementos y verificar su propiedad seleccionada .

// 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);


Utilice el método GetSelectedIndices del cuadro de lista

List<int> selecteds = listbox_cities.GetSelectedIndices().ToList(); for (int i=0;i<selecteds.Count;i++) { ListItem l = listbox_cities.Items[selecteds[i]]; }


intente usar este código que creé usando 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

Espero que ayude.