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

So binde ich meine Objektliste an eine Dropdown-Liste. Meine Frage ist, wie setze ich das DataTextField auf die ToString() -Methode des Objekts.C# DDL Datenquellenliste des Objekts. Wie setze DataTextField auf den toString() des Objekts?

Die ToString() zurückkehren würde ID + "" + Name

I

MyDropDownList.DataTextField="ToString()"; 

und

MyDropDownList.DataTextField="ToString"; 

aber versucht haben, die Datatextfield will einen Eigenschaftsnamen, kein Verfahren Name.

Wie, wenn überhaupt, kann ich darüber gehen?

+1

gibt es einige gute Infos http://stackoverflow.com/questions/4794746/format-dropdownlist-textvalue – JKerny

+1

auch DataTextField ist ein String-Check hier https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols. Dropdown-Liste (v = vs.110) .aspx – JKerny

Antwort

0

Die korrekteste Option besteht darin, dem Objekt, das Sie in die Liste einfügen, eine Eigenschaft hinzuzufügen. Es kann durch einen Ausdruck definiert werden. z:

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

Wenn diese inpossible - Sie ein inhert Objekt oder Wrapper-Objekt, dessen Zugriff auf die ToString liefert Methode, wie man Feld schaffen.

Dann können Sie diese Eigenschaft in Dropdownlist gesetzt, wie: MyDropDownList.DataTextField = "Description";

aktualisieren

Es dritte Option sind - Sie anonymes Objekt insted Objekt-Wrapper erstellen

Verwandte Themen