2013-04-11 5 views
5

मैं कई के चयन मोड के साथ एक ListBox है। पीछे कोड में, मैं कुछ मानों को चयनित के रूप में सेट करना चाहता हूं। ये मान एक ListItems []के नाम ' नामित में मौजूद हैं।ListBox में चुने गए कई आइटम कैसे सेट करें?

एचटीएमएल कोड:

<asp:ListBox ID="lbto" class="chosen" runat="server" Width="450px" 
Height="20px" SelectionMode="Multiple"> 
    <asp:ListItem>Mandy</asp:ListItem> 
    <asp:ListItem>Amit</asp:ListItem> 
    <asp:ListItem>sundar</asp:ListItem> 
    <asp:ListItem>ragu</asp:ListItem> 
    <asp:ListItem>raju</asp:ListItem> 
</asp:ListBox> 

ListItem [] नाम'ragu' और 'राजू' शामिल हैं। अब, जब पेज लोड होता है, तो लिस्टबॉक्स में 'ragu' और 'raju' चयनित मानों के रूप में होना चाहिए।

उत्तर

13

क्या ListItem की Selected -property स्थापना के बारे में?

var names = new List<string>(new string[] { "ragu", "raju" }); 

foreach (var item in lbto.Items) 
{ 
    if (names.Contains(item.Text)) 
     item.Selected = true; 
} 
+0

आपका जवाब एक ListItem के लिए सही है का उपयोग कर सकते हैं – ragu

+0

एक से अधिक आइटम सेट करें ऊपर वर्णित विधि के साथ 'चयनित' करने के लिए। उत्तर अपडेट किया गया। – Carsten

+0

तो 'lbto' शामिल 100 वस्तुओं का मतलब है, यह 100 आइटम पूरी की जाँच करेगा। क्या इसमें अधिक समय लगेगा? – ragu

-1

.. आप LINQ की एक पंक्ति

lbto.Items.Cast<String>().ForEach(i => i.Selected = names.Contains(i.Text)); 

या

lbto.Items.OfType<string>().ForEach(i => i.Selected = names.Contains(i.Text)); 
+1

मुझे यह कहते हुए एक त्रुटि मिलती है कि ListItemCollection में 'ForEach' की परिभाषा नहीं है और कोई एक्सटेंशन विधि 'ForEach' –

+0

ऊपर दी गई टिप्पणी सही है; शायद lbto.Items.OfType () ... –

+1

कोशिश समाधान काम नहीं करता। \t \t मैं कह रही है कि ListItemCollection 'foreach' के लिए एक परिभाषा और कोई विस्तार विधि 'foreach' –

1

आप FindByValue विधि का उपयोग कर सकते हैं

foreach (string item in stringList) 
    lbxList.Items.FindByValue(item).Selected = true; 
संबंधित मुद्दे