如何将下拉列表项设置为 ASP.NET 中选择的下拉列表项

本文关键字:下拉列表 NET ASP 选择 设置 | 更新日期: 2023-09-27 18:36:49

我想以编程方式为 asp 设置选定项。 网络下拉列表控件。

所以我想将一个值传递给下拉列表控件以设置所选项目,其中项目的值等于传递的值。

如何将下拉列表项设置为 ASP.NET 中选择的下拉列表项

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 属性 参数。此方法执行区分大小写和 对文化不敏感的比较。此方法不做部分 搜索或通配符搜索。如果在 使用此条件的集合,返回 null,MSDN。

如果您预计可能要查找 ListItem 集合中不存在的文本/值DropDownList则必须在访问 Selected 属性之前检查是否从FindByTextFindByValue获取ListItem对象或null。如果在返回 null 时尝试访问 Selected,则会出现 NullReferenceException。

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 方法之前,请不要忘记重置 DropDownList,以便使用 ClearSelection() 方法选择任何项。它将清除列表选择,并将所有项的 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 链接中,您可以阅读 de DropDownList 方法文档。

希望对您有所帮助。

设置下拉列表属性

selected="true"