c# asp.net

c# - ¿Cómo establecer un elemento de lista desplegable como seleccionado en ASP.NET?



(5)

Quiero establecer el elemento seleccionado para asp. net lista desplegable de control programáticamente.

Por lo tanto, quiero pasar un valor al control de lista desplegable para establecer el elemento seleccionado donde el valor del elemento es igual al valor pasado.


Establecer propiedad desplegable

selected="true"


Este es un ejemplo muy bueno y limpio: (consulte este gran tutorial para obtener un link completo de explicación)

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() }); }

En este link MSDN, puede leer la documentación del método DropDownList .

Espero eso ayude.


Puede establecer SelectedValue en el valor que desea seleccionar. Si ya ha seleccionado el artículo, debe borrar la selección; de lo contrario, obtendría el error " No se pueden seleccionar varios elementos en DropDownList ".

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

También puede usar ListItemCollection.FindByText o ListItemCollection.FindByValue

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

Utilice el método FindByValue para buscar en la colección un ListItem con una propiedad Value que contenga el valor especificado por el parámetro value. Este método realiza una comparación sensible a mayúsculas y minúsculas y no es sensible a la cultura. Este método no realiza búsquedas parciales o búsquedas con comodines. Si no se encuentra un elemento en la colección que utiliza este criterio, se devuelve null, ListItemCollection.FindByValue .

Si espera que pueda estar buscando texto / valor que no estará presente en la colección DropDownList ListItem, debe verificar si obtiene el objeto ListItem o null de FindByText o FindByValue antes de acceder a la propiedad Selected. Si intenta acceder a Selected cuando se devuelve null, obtendrá NullReferenceException .

ListItem listItem = dropdownlist.Items.FindByValue(value); if(listItem != null) { dropdownlist.ClearSelection(); listItem.Selected = true; }


Puede usar el método FindByValue para buscar DropDownList en un elemento con un valor que coincida con el parámetro.

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

Alternativamente, puede usar el método FindByText para buscar DropDownList en un elemento con texto que coincida con el parámetro.

Antes de utilizar el método FindByValue, no olvide restablecer DropDownList para que no se seleccionen elementos con el método ClearSelection (). Borra la selección de lista y establece la propiedad Seleccionado de todos los elementos en falso. De lo contrario, obtendrá la siguiente excepción.

"Cannot have multiple items selected in a DropDownList"


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