zukucode
主にWEB関連の情報を技術メモとして発信しています。

ASP.NET データテーブルをバインドしてコンボボックスの値を設定する

コンボボックス(htmlselectやASPコントロールのDropDownList)の要素にデータテーブルの値をセットする方法を紹介します。

ASP.NET コンボボックス(ドロップダウンリスト)のアイテムを追加するでコンボボックスにアイテムを1件ずつ追加していく方法を紹介しましたが、SQLなどで取得したDataTableをそのままバインドすることも可能です。

以下のようにコンボボックスを定義しているとします。

<select id="Select1" runat="server"></select>

また、SQLなどで以下の形式でDataTableを取得したとします。

TextValue
社員A1
社員B2
社員C3
社員D4

DataTextFieldには画面に表示するテキストとして設定したい列名を指定し、DataValueFieldにはValue値として設定したい列名を指定します。

'リスト要素設定
Select1.DataSource = dt 'dtは上述のDataTable
Select1.DataTextField = "Text"
Select1.DataValueField = "Value"
Select1.DataBind()

先頭に空白行を設定する

先頭に空白行を設定したい場合は、バインドする前に、DataTableに対して空白行を追加しておきます。

Dim newrow As DataRow = dt.NewRow
newrow("Text") = ""
newrow("Value") = ""
dt.Rows.InsertAt(newrow, 0) '先頭に追加

関連記事