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

时间:2012-06-11 05:49:11

标签: c# asp.net

我想为asp设置selecteditem。以编程方式控制网络下拉列表。

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

5 个答案:

答案 0 :(得分:64)

dropdownlist.ClearSelection(); //making sure the previous selection has been cleared
dropdownlist.Items.FindByValue(value).Selected = true;

答案 1 :(得分:32)

您可以将SelectedValue设置为您要选择的值。如果您已经选择了项目,那么您应该清除选择,否则您将收到“Cannot have multiple items selected in a DropDownList”错误。

dropdownlist.ClearSelection();
dropdownlist.SelectedValue = value;

您还可以使用ListItemCollection.FindByTextListItemCollection.FindByValue

dropdownlist.ClearSelection();  
dropdownlist.Items.FindByValue(value).Selected = true;
  

使用FindByValue方法在集合中搜索ListItem   使用包含值指定的值的Value属性   参数。此方法执行区分大小写和   文化不敏感的比较。这种方法不做部分   搜索或通配符搜索。如果在中找不到某个项目   使用此条件的集合,返回null MSDN

如果您希望找到DropDownList ListItem集合中不存在的文本/值,那么您必须检查ListItem对象或null是否来自FindByText访问Selected属性之前1}}或FindByValue。如果您在返回null时尝试访问Selected,那么您将获得NullReferenceException

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

if(listItem != null) 
{
   dropdownlist.ClearSelection();
   listItem.Selected = true;
}

答案 2 :(得分:25)

您可以使用FindByValue方法在DropDownList中搜索值与参数匹配的Item。

dropdownlist.ClearSelection();
dropdownlist.Items.FindByValue(value).Selected = true;

或者,您可以使用FindByText方法在DropDownList中搜索与参数匹配的文章。

在使用FindByValue方法之前,不要忘记重置DropDownList,以便使用ClearSelection()方法不选择任何项目。它清除列表选择并将所有项的Selected属性设置为false。否则您将获得以下异常。

"Cannot have multiple items selected in a DropDownList"

答案 3 :(得分:0)

这是一个非常好的和干净的例子:(查看这个很棒的教程以获得完整的解释link

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 link中,您可以阅读de DropDownList方法文档。

希望它有所帮助。

答案 4 :(得分:-3)

设置下拉属性

selected="true"
相关问题