2012-03-21 15 views
6

मैं सूची सूची की सूची का उपयोग कर एक ड्रॉपडाउन सूची में आइटम जोड़ने की कोशिश कर रहा हूं, लेकिन यह मान (केवल पाठ) नहीं उठा रहा है।आप ASP.NET में DropDownList को ListItems को प्रोग्रामेटिक रूप से कैसे जोड़ते हैं?

कोड के नीचे (कोड मैं वास्तव में उपयोग कर रहा हूँ से सरलीकृत) है:

PositionDropDown.DataSource = GetPositionOptions(); 
    PositionDropDown.DataBind(); 


    private List<ListItem> GetPositionOptions() 
    { 
     List<ListItem> items = new List<ListItem>(); 
     items.Add(new ListItem("","")); 
     items.Add(new ListItem("Top (main)", "TOP")); 
     items.Add(new ListItem("Bottom (full width)", "BTM")); 
     items.Add(new ListItem("Bottom Left", "MIL")); 
     items.Add(new ListItem("Bottom Middle", "MID")); 
     return items; 
    } 

हालांकि गाया एचटीएमएल मूल्यों ListItem निर्माता के 2 पैरामीटर में निर्दिष्ट याद आ रही है:

<option value=""></option> 
<option value="Top (main)">Top (main)</option> 
<option value="Bottom (full width)">Bottom (full width)</option> 
<option value="Bottom Left">Bottom Left</option> 
<option value="Bottom Middle">Bottom Middle</option> 

यह निर्दिष्ट "मान" का उपयोग क्यों नहीं कर रहा है और इसके बजाय HTML को प्रतिपादित करते समय "नाम" को दोहराया जा रहा है? मैं क्या गलत कर रहा हूं?

+0

आह, अरे ... इसे अभी देखें, लेकिन आपने इसे स्वयं भी देखा है :-) –

उत्तर

9

इस कोड के साथ प्रयास करें। आप डेटा बाध्यकारी के साथ मैन्युअल रूप से आइटम जोड़ मिश्रण कर रहे हैं।

private void SetPositionOptions() 
{ 
    PositionDropDown.Items.Add(new ListItem("","")); 
    PositionDropDown.Items.Add(new ListItem("Top (main)", "TOP")); 
    PositionDropDown.Items.Add(new ListItem("Bottom (full width)", "BTM")); 
    PositionDropDown.Items.Add(new ListItem("Bottom Left", "MIL")); 
    PositionDropDown.Items.Add(new ListItem("Bottom Middle", "MID")); 
} 

मैं कहना चाहता हूँ कि आप इस 2 लाइनों

PositionDropDown.DataSource = GetPositionOptions(); 
PositionDropDown.DataTextField = "Text"; 
PositionDropDown.DataValueField = "Value"; 
PositionDropDown.DataBind(); 

जोड़ना चाहिए लेकिन यह कोई अर्थ नहीं है कि आप अपने कोड रखना चाहते हैं के रूप में यह है, तो आप ListItems बाध्य करने के लिए नहीं करना पड़ेगा।

+0

धन्यवाद, लेकिन उत्तर भी आसान था - मैं डेटाटेक्स्टफिल्ड और डेटावैल्यूफ़ील्ड – NickG

+0

निर्दिष्ट करना भूल गया था "आपको ListItems बांधना नहीं है"? आप जो भी सोचते हैं उससे आप बाध्य कर सकते हैं। – NickG

+0

आप इसे कर सकते हैं, लेकिन वर्णित पहले दृष्टिकोण का उपयोग करना प्राकृतिक तरीका होगा क्योंकि आइटम संग्रह ListItem का संग्रह है। –

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