2009-06-09 42 views
0

我想將數據源添加到下拉列表中。這個下拉列表是gridview的一個列。這裏我想在不使用sqldatasource的情況下動態添加數據源到下拉列表。如何將數據源設置爲下拉列表

(VS2008和C#)

回答

1

您可以實現對網格的下拉列表控制的OnDataBinding事件。如果您可以將DataSource屬性和其他屬性分配給您喜歡的任何內容。甚至將它綁定到List<YourObject>

在OnDataBinding事件中執行此操作還允許您即時自定義ddl中的值。因此,如果您需要該類型的功能,則每行的ddl可以根據行中的其他一些數據具有不同的可用選項集。

如果使用OnDataBinding方法代替自動(簡單模式)佈線,則ASP.NET控件具有靈活性。

+0

thnx爲你的快速回復是的,它將工作 – thiru 2009-06-09 06:08:14

+0

請告訴我我設置數據源像OnDataBinding事件 DropDownList11.DataSource = dataTable; DropDownList11.DataValueField =「ProjectCode」; DropDownList11.DataTextField =「ProjectCode」; DropDownList11.DataBind(); 但是會出現錯誤,如 名稱「DropDownList11」在當前上下文中不存在 – thiru 2009-06-09 06:16:05

1

是因爲它是在ItemTemplate所以你不會直接得到它,你必須使用的FindControl

0

這裏是你正在尋找

示例代碼1:

public enum Color 
{ 
    RED, 
    GREEN, 
    BLUE 
} 

每個枚舉類型都從System.Enum派生。有兩種靜態方法可幫助將數據綁定到下拉列表控件(並檢索該值)。這些是Enum.GetNames和Enum.Parse。使用GetNames,您可以綁定到下拉列表控件如下:

protected System.Web.UI.WebControls.DropDownList ddColor; 

private void Page_Load(object sender, System.EventArgs e) 
{ 
    if(!IsPostBack) 
    { 
     ddColor.DataSource = Enum.GetNames(typeof(Color)); 
     ddColor.DataBind(); 
    } 
} 

例2:

List<Person> myPList = new List<Person>(); 



Person p1 = new Person(); 

p1.ID = 1; 

p1.Name = "Bob"; 

p1.Color = "Blue"; 



Person p2 = new Person(); 

p2.ID = 2; 

p2.Name = "Joe"; 

p2.Color = "Green"; 



myPList.Add(p1); 

myPList.Add(p2); 



this.DropDownList1.DataSource = myPList; 

this.DropDownList1.DataTextField = "Color"; 

this.DropDownList1.DataValueField = "ID"; 

this.DropDownList1.DataBind(); 

更完整的實踐看這裏: https://stackoverflow.com/a/9076237/132239

也不要忘記總是把你的答案標記爲答案

相關問題