簡體   English   中英

如何在ASP.NET中設置一個下拉列表項?

[英]How to set a dropdownlist item as selected in ASP.NET?

我想為asp設置selecteditem。 凈下拉列表以編程方式進行控制。

所以我想將一個值傳遞給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.FindByTextListItemCollection.FindByValue

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

使用FindByValue方法在集合中搜索具有Value屬性(包含value參數指定的值)的ListItem。 此方法執行區分大小寫和不區分文化的比較。 此方法不執行部分搜索或通配符搜索。 如果使用此條件在集合中找不到項目,則返回NSDN

如果期望您正在尋找DropDownList ListItem集合中不存在的文本/值,則在訪問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"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM