我想为asp设置selecteditem。net dropdownlist 以编程方式控制。
所以我想将一个值传递给下拉列表控件以设置选定的项目,其中项目的值等于传递的值。
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 属性的 ListItem,该属性包含由 value 参数指定的值。此方法执行区分大小写和不区分区域性的比较。此方法不执行部分搜索或通配符搜索。如果使用此条件在集合中未找到项目,则返回 null,MSDN。
如果您希望您可能正在寻找不会出现在DropDownList
ListItem 集合中的文本/值,那么您必须检查您是否获得了该ListItem
对象null
,FindByText
或者FindByValue
在您访问 Selected 属性之前或之前。如果您在返回 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链接中,您可以阅读DropDownList
方法文档。
希望能帮助到你。
设置下拉属性
selected="true"