2009-10-18 15 views
17

से सभी चयनित मान प्राप्त करना मेरे पास एक एएसपी लिस्टबॉक्स है जिसमें सेक्शनमोड "एकाधिक" पर सेट है। क्या सभी चयनित तत्वों को पुनः प्राप्त करने का कोई तरीका है न कि केवल अंतिम?एएसपी लिस्टबॉक्स

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

lstCart.SelectedIndex का उपयोग करते हुए बस (उम्मीद के रूप में) पिछले तत्व देता है। क्या ऐसा कुछ है जो मुझे सभी चुनेगा?

यह एक वेब फॉर्म के लिए है।

उत्तर

50

आप ListBox.GetSelectedIndices method और परिणामों पर लूप का उपयोग कर सकते हैं, फिर आइटम संग्रह के माध्यम से प्रत्येक को एक्सेस कर सकते हैं। वैकल्पिक रूप से, आप सभी वस्तुओं के माध्यम से लूप कर सकते हैं और Selected property देख सकते हैं। लिस्टबॉक्स

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

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

धन्यवाद। मैंने इसे आपके द्वारा दिए गए दूसरे समाधान के साथ काम किया है। –

+0

कोई जांच नहीं! मैंने अलग-अलग दृष्टिकोण दिखाने के लिए कोड जोड़ा। यदि आप LINQ का उपयोग करने का निर्णय लेते हैं तो आइटम्स संग्रह को कास्ट करने की आवश्यकता होती है। –

+1

LINQ लांबा नियम। सहायता के लिए धन्यवाद। –

3

उपयोग GetSelectedIndices विधि इस कोड 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 

मुझे आशा है कि यह मदद करता है।

0

कोशिश की

// 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); 
संबंधित मुद्दे