我有一个DropDownList控件,要绑定一组数据.
数据表的字段有3个,firstName,LastName,ID,首先DataValueField="ID",1.DataTextField上我想显示firstName+“ ”+LastName,请问怎么实现?2.DataTextFormatString这个属性是干嘛的?可以用到这个问题上吗?网上的解决方法是在SQL里查询或者在DataTable中新增一字段。但是我的数据查询是用linq做的,没有用到DataTable,我要赋给DataSource的值是List或者是IQueryable集合。

解决方案 »

  1.   

    使用Model层用一个字段表示 firstName+“ ”+LastName然后在DataTextField上绑定此字段
      

  2.   


    我想到的也是在输出时select id,(FirstName+' '+LastName)name
      

  3.   


    Model层是什么意思?该怎样写?
      

  4.   

    select (firstname+lastname) as name from table
      

  5.   


    楼上的可以
    http://www.csharp360.com
      

  6.   


    兄弟们,我在数据库返回的是List<Employee>集合,每个Employee里会包含那3个属性,我现在想用DataTextField和DataTextField方式显示数据,并不是要返回List<String> 集合!就是说要再页面处理,并不是数据层
      

  7.   

    1.直接取出 
    sql:  select id,(column1+' '+column2) as f from tbl;
       dropdownlist1.datasource = ds.tables[0];
       dropdownlist1.DataTextField = "f";
       dropdownlist1.DataValueField = "id";
       dropdownlist1.DataBind();2.遍历填充,不推荐 
    sql: select * from tbl;
       foreach(datarow dr in dt.rows)
          {
                 dropdownlist1.items.add(new listitem(dr[1].ToString()+" "+dr[2].ToString()+" ,dr[0].ToString());
           }3.为实体多加一个只读属性,返回两个列的值 
    sql: select * from tbl;
       model: public string column1column2{get{return this.column1+" "+this.column2;}}
       dropdownlist1.datasource = List<tbl>;
       dropdownlist1.DataTextField = "column1column2";
       dropdownlist1.datavaluefield= "id";
       dropdownlist1.databind();
      

  8.   


    只有1楼的朋友理解我说的意思,其余的都是跟sql操作9楼的第三种方法看上去好像可以,但是我觉得还是不行
      

  9.   

    用Linq“做的”,你不是写过"select ....”吗?难道不会创建一个字段出来?!
      

  10.   

    linq 可以用那个 select firstName+LastName.如果是别人把Linq封装了一层给你用.你可能只能定义一个DTO,把firstName+LastName放到一个属性里来用了
      

  11.   


    我意思是如果我写var query = from p in X.Employees
               select p.FirstName + " " + p.LastName;
    return query.ToList();方法如果我这样写的话,绑定到DropDownList控件是没有问题,但是就无法绑定DataValueField="ID"这个属性了,因为我每次点击DropDownList内容的时候会触发一个新的事件,取的ID来操作
      

  12.   

    select ASSETCODE||'+'||DEPT from info_asset
      

  13.   

    唉,能不能通过数据集绑定啊,直接操作数据集DataTable不行吗?
      

  14.   


    补充:
    查数据库的时候用上面的sql 语句   其中'+'可替换成你需要的字符DropDownList.DataTextField = ds.Tables[0].Columns["ID"];
    DropDownList.DataValueField = ds.Tables[0].Columns["name"];