39

aspのselecteditemを設定したい。プログラムによるネットドロップダウンリストコントロール。

そのため、ドロップダウン リスト コントロールに値を渡して、選択したアイテムを設定します。アイテムの値は、渡された値と等しくなります。

4

5 に答える 5

74
dropdownlist.ClearSelection(); //making sure the previous selection has been cleared
dropdownlist.Items.FindByValue(value).Selected = true;
于 2012-06-11T05:55:44.700 に答える
33

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 .

DropDownListListItem コレクションに存在しないテキスト/値を探している可能性があると予想される場合は、 Selected プロパティにアクセスする前に、ListItemオブジェクトを取得するか、またはそこnullから取得するかを確認する必要があります。null が返されたときに Selected にアクセスしようとすると、NullReferenceExceptionが発生します。FindByTextFindByValue

ListItem listItem = dropdownlist.Items.FindByValue(value);

if(listItem != null) 
{
   dropdownlist.ClearSelection();
   listItem.Selected = true;
}
于 2012-06-11T05:49:44.470 に答える
26

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"
于 2012-06-11T05:58:33.863 に答える
0

これは非常に素晴らしくクリーンな例です:(完全な説明リンクについては、このすばらしいチュートリアルを確認してください)

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では、メソッドのドキュメントを読むことができます。

それが役に立てば幸い。

于 2012-06-11T05:56:47.437 に答える