技术笔记1_ASP.net:如何让DropDownList之类的单值绑定控件绑定多个字段值

来源:互联网 发布:吴雨霏 吴哥窟 知乎 编辑:程序博客网 时间:2024/05/22 23:03

    DropDownList之类的控件可以绑定数据源DataTable或IEnumerable<>之类的对象源,但其Text默认只能绑定一个字段(属性),如果需要绑定多个字段组合的值则比较麻烦,网上一般的解决方法是在SQL SELECT语句添加组合字段或添加数据对象的属性来表示组合属性,这种方法能够解决问题,但显得不灵活而麻烦,因为前端的显示需求可能是多变的,如果每一个场景要求不同的显示则都要去增加组合字段或新属性。

  其实这个问题可以通过LINQ来完美解决,通过LINQ的FROM .. IN .. SELECT NEW {}来构造匿名对象,我们实际上可以灵活的绑定字段的组合值。

假设我们的数据对象为:

public class DataObject{   public string Id{get;set;}   public string Val1{get;set;}   public string Val2{get;set;}}
   其中Id为主键,前端需要显示的值为Val1,Val2的组合,比如:string.Format("{0}{1}",dataObject.Val1,dataObject.Val2),正常情况下DropDownList是不能绑定多个属性(字段)的,但

我们可以用LINQ来灵活的处理这种情况:

  

dropDownList.DataValueField="Id";dropDownList.DataTextField="ValDescription";//ValDescription是我们临时定义的属性名称dropDownList.DataSource=from dataObject in dataObjects select new {dataObject.Id,ValDescription=string.Format("{0}{1}",dataObject.Val1,dataObject.Val2};

 这样DropDownList控件就可以任意的显示我们的组合字段,而且无需对数据模型或数据访问层做任何的改变。

0 0
原创粉丝点击