aspのselecteditemを設定したい。プログラムによるネットドロップダウンリストコントロール。
そのため、ドロップダウン リスト コントロールに値を渡して、選択したアイテムを設定します。アイテムの値は、渡された値と等しくなります。
dropdownlist.ClearSelection(); //making sure the previous selection has been cleared
dropdownlist.Items.FindByValue(value).Selected = true;
SelectedValue
を選択したい値に設定できます。既にアイテムを選択している場合は、選択をクリアする必要があります。そうしないと、「DropDownList で複数のアイテムを選択できません」というエラーが表示されます。
dropdownlist.ClearSelection();
dropdownlist.SelectedValue = value;
ListItemCollection.FindByTextまたはListItemCollection.FindByValueも使用できます。
dropdownlist.ClearSelection();
dropdownlist.Items.FindByValue(value).Selected = true;
FindByValue メソッドを使用して、value パラメーターで指定された値を含む Value プロパティを持つ ListItem のコレクションを検索します。このメソッドは、大文字と小文字を区別し、カルチャを区別しない比較を実行します。このメソッドは、部分検索またはワイルドカード検索を行いません。この条件を使用してコレクション内に項目が見つからない場合は、null が返されます ( MSDN .
DropDownList
ListItem コレクションに存在しないテキスト/値を探している可能性があると予想される場合は、 Selected プロパティにアクセスする前に、ListItem
オブジェクトを取得するか、またはそこnull
から取得するかを確認する必要があります。null が返されたときに Selected にアクセスしようとすると、NullReferenceExceptionが発生します。FindByText
FindByValue
ListItem listItem = dropdownlist.Items.FindByValue(value);
if(listItem != null)
{
dropdownlist.ClearSelection();
listItem.Selected = true;
}
FindByValueメソッドを使用して、パラメーターに一致する値を持つアイテムのDropDownListを検索できます。
dropdownlist.ClearSelection();
dropdownlist.Items.FindByValue(value).Selected = true;
または、FindByTextメソッドを使用して、パラメーターに一致するテキストを含むアイテムをDropDownListで検索できます。
FindByValueメソッドを使用する前に、ClearSelection()メソッドを使用してアイテムが選択されないようにDropDownListをリセットすることを忘れないでください。リストの選択をクリアし、すべてのアイテムのSelectedプロパティをfalseに設定します。そうしないと、次の例外が発生します。
"Cannot have multiple items selected in a DropDownList"
これは非常に素晴らしくクリーンな例です:(完全な説明リンクについては、このすばらしいチュートリアルを確認してください)
public static IEnumerable<SelectListItem> ToSelectListItems(
this IEnumerable<Album> albums, int selectedId)
{
return
albums.OrderBy(album => album.Name)
.Select(album =>
new SelectListItem
{
Selected = (album.ID == selectedId),
Text = album.Name,
Value = album.ID.ToString()
});
}
このMSDNリンクDropDownList
では、メソッドのドキュメントを読むことができます。
それが役に立てば幸い。