ASP.NET データテーブルをバインドしてコンボボックスの値を設定する
コンボボックス(html
のselect
やASPコントロールのDropDownList
)の要素にデータテーブルの値をセットする方法を紹介します。
ASP.NET コンボボックス(ドロップダウンリスト)のアイテムを追加するでコンボボックスにアイテムを1件ずつ追加していく方法を紹介しましたが、SQL
などで取得したDataTable
をそのままバインドすることも可能です。
以下のようにコンボボックスを定義しているとします。
<select id="Select1" runat="server"></select>
また、SQL
などで以下の形式でDataTable
を取得したとします。
Text | Value |
---|---|
社員A | 1 |
社員B | 2 |
社員C | 3 |
社員D | 4 |
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) '先頭に追加