【问题标题】:How to concatenate values in dropdownlist in asp.net如何连接asp.net下拉列表中的值
【发布时间】:2011-10-11 20:38:47
【问题描述】:

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

DropDownlist.DataTextField = "Name (Count)";

但我无法做上述事情,有没有其他方法可以实现上述目标,我知道解决方法,使用循环并在

DropDownlist.Items.Add();

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

【问题讨论】:

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


    【解决方案1】:

    如果您可以在数据源中创建自定义数据字段并在其中进行连接,则可以。例如,类似这样的事情(您可能需要进行一些转换或转换,但希望您能理解):

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

    然后设置

    DropDownlist.DataTextField = "DataField";
    

    【讨论】:

      【解决方案2】:

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

        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();     
      

      【讨论】:

        【解决方案3】:

        没有办法以您尝试的方式执行此操作,因为 datatextfield 值需要列的单个名称。如果您不想使用 .Add() 方法进行此操作,您始终可以使用另一个列和列名称重新创建数据表,其中包含 Name 的连接值并以您想要的格式计数,但如果您的格式会更好从您的数据库中填充此数据表以更改您的查询以将第四列包含连接值。否则 Add() 方法听起来是你最好的选择;)

        这里是 DataTextField 的一些信息的链接

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

        【讨论】:

          猜你喜欢
          • 2013-08-23
          • 1970-01-01
          • 2011-12-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多