0

我有一个DataTable. 我需要从DataTable. 例如,假设DataTable有多个列,我想检索其中两个,例如 Id、Name

var item = new ListItem("k");
            item.Selected = true;
            this.formatOfReport.Items.Add(item);
            item = new ListItem("n");
            this.formatOfReport.Items.Add(item);

我想替换名称以替换 k 和 n 值,数据在第 1 行和第 2 行,例如 steve 和 mike 我想要 steve = k 和 mike =n,但我不想做硬代码参考如下

var item = new ListItem(dt.Rows[0][1].ToString(), dt.Rows[0][1].ToString());
            item.Selected = true;
            this.formatOfReport.Items.Add(item);
            item = new ListItem(dt.Rows[1][1].ToString(), dt.Rows[1][1].ToString());
            this.formatOfReport.Items.Add(item);
4

3 回答 3

1

你有两个选择:

// DataSource approach
formatOfReport.DataTextField = "Name";
formatOfReport.DataValueField = "Id";
formatOfReport.DataSource = dt;
formatOfReport.DataBind();

// programmatically
foreach (DataRow row in dt.Rows)
{
    int ID = row.Field<int>("Id");
    string name = row.Field<string>("Name");
    var item = new ListItem(name, ID.ToString());
    formatOfReport.Items.Add(item);
}
于 2012-11-29T14:32:13.890 回答
1

如果我理解正确,您需要select Id and Name columns and filter rows using couple of given Ids from your datatable

int[] idList = new int[] { 11, 12 }; //Your Required Ids 

var results = (from r in dt.AsEnumerable()
               where idList.Contains(r.Field<int>("Id"))
               select new {Id = r.Field<int>("Id"),
                           Name = r.Field<string>("Name")}).ToList();

ddl.DataSource = results;
ddl.DataTextField = "Id";
ddl.DataValueField = "Name";
ddl.DataBind();
于 2012-11-29T15:16:23.443 回答
0

它看起来像你想要绑定 DropDownList,你可以这样做

  DropDownList1.DataSource = dt;
  DropDownList1.DataValueField="Id";
  DropDownList1.DataTextField="Name";
  DropDownList1.SelectedValue=//your Id
  DropDownList1.DataBind();
于 2012-11-29T14:35:31.573 回答