C# KeyValuePair でドロップダウンリストの値を設定

ASP.NET DropDownList
ドロップダウンリストへの値のセットに DataTable ではなく、KeyValuePair を使用する方法。この方法は、書き方を統一できるメリットがある。

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 List>();
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 だけセットすればデータの中身がセットされる。 カラム名に依存せずにセットできるので楽である。

このブログの人気の投稿

コピーした行の挿入が表示されない時はフィルタされていないかチェック

Excel で一部の図形だけ固定する