2014-05-01 2 views
8

मैं है मेरे नियंत्रण में निम्नलिखित Page_Load विधि (System.Web.UI.UserControl):वेबफॉर्म में पेज लोड से पहले ड्रॉपडाउन सूची कैसे पॉप्युलेट करें?

protected void Page_Load(object sender, EventArgs e) 
    { 
     DropDownList ShowAssumptions = new DropDownList(); 
     List<string> list = new List<string>() 
     { 
      "test", 
      "test2" 
     }; 
     ShowAssumptions.DataSource = from i in list 
            select new ListItem() 
            { 
             Text = i, 
             Value = i 
            }; 
     ShowAssumptions.DataBind(); 
    } 

फिर, मेरी .aspx में मैं इस है:

<asp:DropDownList id="ShowAssumptions" runat="server"> 
</asp:DropDownList> 

लेकिन, DropDownList कभी नहीं आबादी हो जाता है। मैं क्या गलत कर रहा हूं?

+0

इसके बजाए इसे आजमाएं: ShowAssumptions.DataSource = list; – MaxOvrdrv

+0

@MaxOvrdrv धन्यवाद लेकिन यह काम करने के लिए प्रतीत नहीं होता है, या तो। – user1477388

+1

ओह नहीं मैंने अभी देखा है: अपने पृष्ठ लोड में ड्रॉपडाउन सूची घोषित न करें ... बस इसका उपयोग करके इसका संदर्भ लें। नीचे मेरा जवाब देखें ... – MaxOvrdrv

उत्तर

8

बस डेटा स्रोत के रूप में सूची असाइन करें। साथ ही मुझे लगता है कि आप प्रत्येक पोस्टबैक पर सूची को फिर से लोड नहीं करना चाहते हैं।

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     List<string> list = new List<string>() 
     { 
      "test", 
      "test2" 
     }; 
     ShowAssumptions.DataSource = list; 
     ShowAssumptions.DataBind(); 
    } 
} 
+0

आह, मैं देखता हूं। धन्यवाद! ऐसा लगता है कि मेरी समस्या 'DropDownList ShowAssumptions = नई DropDownList(); 'थी। मैंने इसे बाहर निकालने के बाद, यह काम करता है। – user1477388

+0

जब आप पहले से ही एएसपी संस्करण बना चुके हैं तो आपको नियंत्रण बनाने की आवश्यकता नहीं है। क्षमा करें मुझे नहीं पता कि यह कैसे शब्द है। ऑब्जेक्ट्स की सूची का उपयोग करते समय – Tsukasa

1
protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      foreach (string item in list) 
      { 
       ShowAssumptions.Items.Add(item); 
      } 
     } 
    } 
+0

बहुत बहुत धन्यवाद, लेकिन ऐसा लगता है कि यह अभी भी काम नहीं कर रहा है। मैं कुछ और कोशिश कर सकता हूं? – user1477388

+0

@ user1477388 क्या आप निश्चित हैं? यह मेरे लिए काम करता है, – Sajeetharan

2
protected void Page_Load(object sender, EventArgs e) 
    { 
     //Don't do this here! 
     //DropDownList ShowAssumptions = new DropDownList(); 

     List<string> list = new List<string>() 
     { 
      "test", 
      "test2" 
     }; 
     this.ShowAssumptions.DataSource = from i in list 
            select new ListItem() 
            { 
             Text = i, 
             Value = i 
            }; 
     this.ShowAssumptions.DataBind(); 
    } 
3

मामले यदि आप ASP.NET WebForms का उपयोग में, एफई और बूटस्ट्रैप इस

एचटीएमएल कोशिश

<div class="form-group">  

<label class="control-label" for="inputType">Lines: </label>        

<asp:DropDownList ID="DropDownListFabricLines" CssClass="dropdown form-control" runat="server"></asp:DropDownList> 

</div> 

सी #

var entities = new DababaseEntities(); 

List<FabricLineView> fabricLines = entities .Line.Select(x=> new FabricLineView { ID = x.LineaID, Name = x.LineaNombre }).ToList(); 

DropDownListFabricLines.DataValueField = "ID"; 
DropDownListFabricLines.DataTextField = "Name"; 
DropDownListFabricLines.DataSource = fabricLines; 
DropDownListFabricLines.DataBind(); 


public sealed class FabricLineView 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
} 
+0

अच्छा उदाहरण। – FailedUnitTest

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