2016-10-25 37 views
0
MyDropDownList.DataSource = myList; 
MyDropDownList.DataTextField="Name"; 
MyDropDownList.DataValueField="ID"; 
MyDropDownList.DataBind(); 

這就是我如何將我的List對象綁定到下拉列表。我的問題是如何將DataTextField設置爲對象的ToString()方法。C#DDL Datasource對象列表。如何將DataTextField設置爲對象的toString()?

了toString()將返回ID + 「」 +姓名

我已經試過

MyDropDownList.DataTextField="ToString()"; 

MyDropDownList.DataTextField="ToString"; 

但是,在DataTextField想要的屬性名稱,而不是方法名稱。

如果可以,我該怎麼辦?

+1

有一些好的信息這裏http://stackoverflow.com/questions/4794746/format-dropdownlist-textvalue – JKerny

+1

也DataTextField是一個字符串在這裏檢查https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols。下拉列表(v = vs.110)的.aspx – JKerny

回答

0

最正確的選擇是將屬性添加到放入列表中的對象。它可以通過表達式來定義。 e.g:

public class MyListItem 
{ 
    //some code ID, Name properties and so on 
    public string Description => ToString(); 
    public override string ToString() 
    { 
     return $"{ID} {Name}"; 
    } 
} 

如果這是inpossible - 你可以創建一個inhert對象或包裝對象,其提供訪問如何調遣ToString方法。

然後你可以在DropDownList中設置該屬性,如: MyDropDownList.DataTextField = "Description";

更新

還有第三種選擇 - 你可以創建匿名對象insted的對象的包裝

相關問題