Pages

2015/10/22

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 だけセットすればデータの中身がセットされる。 カラム名に依存せずにセットできるので楽である。
Related Posts Plugin for WordPress, Blogger...