2010-10-12 131 views
3

我有一個Person類型的數組,其中包含字符串對象:FirstName,LastName,login。綁定數組+一個對象到Dropdownlist

我有這個綁定到下拉列表。

現在隨着這個數組,我還想顯示一個名爲「Desk」的項目。我怎樣才能做到這一點?

我當前的代碼是:

Person[] traders = GetTraders(); 
ddl_trader.Items.Clear(); 
ddl_trader.DataSource = traders; 
ddl_trader.DataTextField = "LastName"; 
ddl_trader.DataValueField = "Login"; 
ddl_trader.DataBind(); 

我也想要一個額外的項目,我將是默認選擇的項目。

+0

什麼是「書桌」?人的財產?與Person鏈接的獨立對象? – Matthieu 2010-10-12 20:36:32

+0

一個獨立的字符串。它不是Person類型。 – xbonez 2010-10-12 20:37:34

回答

3

您可以設置AppendDataBoundItems屬性true(這是false默認情況下),添加您的物品手動,然後執行綁定過程中添加其餘的項目。 AppendDataBoundItems確定數據綁定期間列表是否被清除。

ddl_trader.Items.Clear(); 
ddl_trader.AppendDataBoundItems = true; 
ddl_trader.Items.Add("Desk"); 
ddl_trader.DataTextField = "LastName"; 
ddl_trader.DataValueField = "Login"; 
ddl_trader.DataSource = traders; 
ddl_trader.DataBind(); 

,如果你需要的資源列表已綁定後添加新項目,你可以做

ddl_trader.Items.Insert(0, "Desk"); 

這不需要設置AppendDataBoundItemstrue

+0

正是我想要的。謝謝! – xbonez 2010-10-12 21:02:14

1

一種這樣的方法是將GetTraders()的結果加載到List<Person>中。然後,您可以將一個或多個新對象添加到列表中,然後將其綁定到您的下拉列表中。

List<Person> traders = new List<Person>(GetTraders()); 
traders.Add(new Person() { LastName = "Foo", Login = "Bar" }); 
ddl_trader.DataSource = traders; 

你也可以定義一個額外的陣列並連接,爲的結果,而不是創建一個組合的集合。 (注意:這將是兩個不同的數組,作爲單個序列處理,但是,後臺數組仍然是單獨的)。

Person[] traders = GetTraders(); 
Person[] moreTraders = new Person[] { new Person() { LastName = "Foo", Login = "Bar" } }; 
ddl_trader.DataSource = traders.Concat(moreTraders); 
+0

我在想如果可以在沒有將它添加到列表中的情況下完成。因爲,它實際上只是一個字符串「Desk」,並不需要名字,姓氏等。 – xbonez 2010-10-12 20:34:46

+0

Gotcha。如果我無法找到一種方法來創建另一個Person類的數組,我將使用第二種方法。 – xbonez 2010-10-12 20:38:40

+0

出於某種原因,traders.Concat返回一個錯誤。是否有需要使用Concat的程序集或參考? – xbonez 2010-10-12 20:45:12

相關問題