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

これは、オブジェクトリストをドロップダウンリストにバインドする方法です。私の質問は、DataTextFieldをオブジェクトのToString()メソッドに設定する方法です。C#DDLオブジェクトのデータソースのリスト。 DataTextFieldをオブジェクトのtoString()に設定する方法は?

のToString()は私が

MyDropDownList.DataTextField="ToString()"; 

MyDropDownList.DataTextField="ToString"; 

を試みたが、DataTextFieldは、プロパティ名ではなく、方法を望んでいる

の名前+ "" ID +を返します名。

どうすればいいですか?

+1

をinstedここ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

最も適切なオプションは、リストに入れるオブジェクトにプロパティを追加することです。式で定義することができます。例えば:

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

これがinpossibleある場合 - あなたはフィールド方法のToString方法へのアクセスを提供inhertオブジェクトまたはラッパー・オブジェクトを作成することができます。

次に、あなたは次のように、DropDownListコントロールにこのプロパティを設定することができます MyDropDownList.DataTextField = "Description";

更新

第三の選択肢があります - あなたは匿名のオブジェクトを作成することができますいくつかの良い情報があるオブジェクト・ラッパー

関連する問題