ドロップダウンリストへの値のセットに DataTable ではなく、KeyValuePair を使用する方法。この方法は、書き方を統一できるメリットがある。
>();
for (var i = 1; i < 12; i++) { list.Add(new KeyValuePair(i, string.Format("{0} がつ", i)));
}
this.DropDownList1.DataValueField = "Key";
this.DropDownList1.DataTextField = "value";
this.DropDownList1.DataSource = list;
this.DropDownList1.DataBind();
セットする際に常に Key や value だけセットすればデータの中身がセットされる。 カラム名に依存せずにセットできるので楽である。
DataTable による初期化
こういうの、未だにけっこうある。DataTable dt = new DataTable();
dt.Columns.Add("きー", typeof(int));
dt.Columns.Add("あたい", typeof(string));
for (var i = 1; i < 12; i++)
{
var dr = dt.NewRow();
dr["きー"] = i;
dr["あたい"] = i.ToString() + " がつ";
dt.Rows.Add(dr);
}
DropDownList1.DataSource = dt;
DropDownList1.DataTextField = "きー";
DropDownList1.DataValueField = "あたい";
DropDownList1.DataBind();
KeyValuePair による初期化
var list = new Listfor (var i = 1; i < 12; i++) { list.Add(new KeyValuePair
}
this.DropDownList1.DataValueField = "Key";
this.DropDownList1.DataTextField = "value";
this.DropDownList1.DataSource = list;
this.DropDownList1.DataBind();
セットする際に常に Key や value だけセットすればデータの中身がセットされる。 カラム名に依存せずにセットできるので楽である。
