2008-10-29 17 views
13
List<String> nameList = new List<String>(); 
DropDownList ddl = new DropDownList(); 

सूची यहाँ से भर जाता है के लिए एक सूची डम्पिंग, तो हल कर:सी # - एक dropdownlist

nameList.Sort(); 

अब मैं dropdownlist, (foreach उपयोग कर रहा है जो मैं कहाँ समस्याएं आ रही हैं में छोड़ने की जरूरत है):

foreach (string name in nameList){ 
    ddl.Items.Add(new ListItem(nameList[name].ToString())); 
} 

कोई कार्यकर्ता नहीं - कोई सुझाव?

Error - The best overloaded method match for 'System.Collections.Generic.List<string>.this[int]' has some invalid arguments 

Error - Argument '1': cannot convert from 'string' to 'int' 

उत्तर

20

की तरह सूची के लिए सीधे DDL बाँध इस बदलें::

ddl.Items.Add(new ListItem(name)); 
:

ddl.Items.Add(new ListItem(nameList[name].ToString())); 
इस के साथ

यह मेरे त्रुटियों संकलन दे रही है

रात के खाने की तरह हो गया।

40

क्यों न सिर्फ

DropDownList ddl = new DropDownList(); 
ddl.DataSource = nameList; 
ddl.DataBind(); 
0
foreach (string name in nameList){ 
     ddl.Items.Add(new ListItem(nameList[name].ToString())); 
    } 

आपकी समस्या है।

यह थोड़ा बेहतर मार्कस सुझाव की तरह वास्तव में अधिक की तरह

foreach (string name in nameList){ 
    ddl.Items.Add(new ListItem(name.ToString())); 
} 

देखो लेकिन मैं चाहिए।

1

ऐसा इसलिए होगा क्योंकि सूची स्ट्रिंग (नाम) द्वारा अनुक्रमित नहीं है बल्कि इनट्स द्वारा अनुक्रमित है।

foreach (string name in nameList) 
{ 
    ddl.Items.Add(new ListItem(name)); 
} 

इसे ठीक करेगा।

0

आपको यह त्रुटि मिलती है क्योंकि संग्रह nameList एक List है, इसलिए आपको इसे एक अनुक्रमणिका का उपयोग करके एक्सेस करना होगा (आप नाम का उपयोग नहीं करते)।

तो तुम लिख सकते हैं:

foreach (string name in nameList){ 
    ddl.Items.Add(name); 
} 

BTW सबसे अच्छा तरीका यह करने के लिए है:

ddl.DataSource = nameList; 
ddl.DataBind(); 
2
ddl.DataSource = nameList; 
ddl.DataBind(); 

अगर यह एक SharePoint सूची है काम नहीं करता - त्रुटि: डेटा स्रोत है एक अवैध प्रकार यह या तो एक IListSource, IENumerable, या IDataSource होना चाहिए। किसी भी शेयरपॉइंट डेवलपर्स ने सोचा कि यह लिखित < स्ट्रिंग > की बजाय एसपीएलिस्ट के लिए था, जैसा कि ऊपर लिखा गया था।

एक एसपीएलिस्ट से जुड़ने का एक तरीका है, लेकिन आप एक एसपीएलिस्टइटेम कोलेक्शन का उपयोग करेंगे, या एक बेहतर जाओ और एसपीडाटासोर्स का उपयोग करें। SharePoint डेवलपर्स के लिए, this blog by Chris O' Brien देखें।

संबंधित मुद्दे