加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

如何将ASP.NET下拉列表DataTextField属性绑定到嵌套属性

发布时间:2020-12-16 03:57:48 所属栏目:asp.Net 来源:网络整理
导读:我想将ASP.NET下拉控件的DataTextField属性绑定到作为初始数据源属性的对象的属性.我将如何完成该特定任务. 下拉数据源数据模式 public class A{ public string ID { get; set; } public B { get; set; }} public class B{ public string Name { get; set; }
我想将ASP.NET下拉控件的DataTextField属性绑定到作为初始数据源属性的对象的属性.我将如何完成该特定任务.

下拉数据源数据模式

public class A
{
   public string ID { get; set; }
   public B { get; set; }
} 

public class B
{
   public string Name { get; set; }  //want to bind the DataTextField to this property
}

ASP.NET代码背后

DropDownList MyDropDownList = new DropDownList();
List<A> MyList = GetList();

MyDropDownList.DataSource = MyList;
MyDropDownList.DataValueField = "ID";

解决方法

假设你有一个A列表,并希望A.ID是ID字段,而ABName是Name字段,你不能直接绑定到B.Name,所以你要么必须在A上创建一个新属性来拉A的B属性中的名称,或者您可以使用Linq创建一个匿名类型,为您执行此操作:

List<A> ListA = new List<A>{
    new A{ID="1",Item = new B{Name="Val1"}},new A{ID="2",Item =  new B{Name="Val2"}},new A{ID="3",Item =  new B{Name="Val3"}}};

DropDownList1.DataTextField = "Name";
DropDownList1.DataValueField = "ID";
DropDownList1.DataSource = from a in ListA
                           select new { ID,Name = a.Item.Name };

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读