来自对象的DropDownList

The*_*ear 2 .net c# drop-down-menu

如何从对象绑定DropDownlist DataText或DataValue字段.当有问题的对象处于第二级时,例如要绑定的对象不在返回的对象Users.ContactDetails.Telephone的第一级中,因为下面的代码不起作用:

ddl.DataSource = dal.dal_Users.GetAllUsers();
ddl.DataTextField = "Telephone";
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一系列的想法,但似乎无法找到有关是否可以这样做的任何信息.

And*_*are 5

如果您使用的是C#3,则可以使用ConvertAll<>etension方法创建一个新的匿名类型,将内部属性移动到顶层.

尝试这样的事情:

IEnumerable<User> users = dal.dal_Users.GetAllUsers();

ddl.DataSource = users.ConvertAll(u => 
    new { Value = u.Name, Telephone = u.ContactDetails.Telephone });
ddl.DataTextField = "Telephone";
Run Code Online (Sandbox Code Playgroud)