/ / asp.net、vb.net、ドロップダウンメニューから特定のあらかじめ選択された項目でドロップダウンリストをプログラムで追加する方法

特定のあらかじめ選択された項目をasp.netでドロップダウンリストをプログラムで追加する方法 - asp.net、vb.net、ドロップダウンメニュー

私は、次のコードを使用してDropDownListを作成する方法を試しました:

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

私の.aspxのページでは、私のコードの背後には、データベース出力を実行するループがあります:

Dim newListItem As ListItem
newListItem = New ListItem("Title", "Value")
salesPersonDropList.Items.Add(newListItem )

私が把握できないのは、レンダリングされたDropDownListで事前に選択されたリストアイテムを作成する方法、つまりHTMLで書き込むものを作成する方法をプログラマチックに設定する方法です。

<select>
<option value="1">1</option>
<option selected value="2">2</option>
</select>

データベースの出力に基づいています。 後ろのコードはデータベース出力をループして出力をセッション変数と比較し、値が一致する場合、ListItemはレンダリングされたドロップダウンで選択された項目である必要があります。

回答:

回答№1については9

あなたの Selected のプロパティ ListItem 本当に:

Dim newListItem As ListItem
newListItem = New ListItem("Title", "Value")
newListItem.Selected = True
salesPersonDropList.Items.Add(newListItem )

回答№2の場合は0

IEnumerableを実装するオブジェクトに結果を格納します。

結果セットをループし、DropDownListのItemsコレクションをループします。現在のItemが結果セットの値と等しい場合、Selectedプロパティをtrueに設定します

あなたのクエリから返された人口データテーブルがあるとします。

Foreach(Datarow row in Datatable.Rows)
{
foreach (ListItem item in DropDownList.Items)
{
if (item.Value == row["columnName"])
{
item.Selected = true;
}
}

}

DropDownListのDataValueMemberプロパティが設定されていない場合は、比較のためにTextプロパティを使用する必要はありません。


回答№3の場合は0

新しいリスト項目を作成中にテストして、セッション値と一致するかどうかを確認し、その項目を選択してリストに追加する必要があります。

Dim newListItem As ListItem
newListItem = New ListItem("Title", "Value")
if(newListItem.value == SessionValue)
newListItem.Selected = True;
salesPersonDropList.Items.Add(newListItem )