如何在asp.net的dropdownlist中连接值

时间:2011-10-11 20:38:48

标签: asp.net drop-down-menu datatextfield

最近在处理下拉列表时,我遇到了一个奇怪的问题,我将数据表绑定到dropdownlist,现在我的数据表包含3列,(Name,Id,Count),在DataTextField中我想连接Name和count下方。

DropDownlist.DataTextField = "Name (Count)";

但我无法做上面的事情,有没有其他方法我可以实现上述目标,我知道工作,使用循环和连接

DropDownlist.Items.Add();

但我想知道我是否可以使用DataTextField。

3 个答案:

答案 0 :(得分:2)

您可以在数据源中创建自定义数据字段并在其中进行连接。例如,类似的事情(你可能需要一些演员或转换,但希望你能得到这个想法):

SELECT
Name,
Count,
Id,
Name + ' (' + Count + ')' AS DataField
FROM
TABLE

然后设置

DropDownlist.DataTextField = "DataField";

答案 1 :(得分:1)

你可以这样做....我希望它会帮助你.....我已经将样本数据添加到数据表中,你可以使用你的数据,

  DataTable table = new DataTable();
        table.Columns.Add("id");
        table.Columns.Add("name");
        table.Columns.Add("count");

        DataRow dr = table.NewRow();
        dr["id"] = "1";
            dr["name"] = "zhang";
            dr["count"] = "6";
            table.Rows.Add(dr);
        DataRow[] rows = new DataRow[table.Rows.Count];

        table.Rows.CopyTo(rows, 0);

            var res = from row in rows
                      select new
                      {
                          id=row["id"].ToString (),
                          namewithcount = row["name"].ToString () +"(" row["count"].ToString ()+")";

                      };

            DropDownList1.DataSource = res;
            DropDownList1.DataTextField = "namewithcount";
            DropDownList1.DataValueField = "id";
            DropDownList1.DataBind();     

答案 2 :(得分:0)

由于datatextfield值需要列的单个名称,因此无法以您尝试的方式执行此操作。如果你不想使用.Add()方法来解决这个问题,你总是可以用另一个列和列名重新创建数据表,其中包含Name和count的连接值,以你想要的格式,但如果你的从数据库填充此数据表以更改查询以包含具有连接值的第四列。否则Add()方法听起来是你最好的选择;)

这是指向DataTextField

的一些信息的链接

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.datatextfield(VS.85).aspx