En el archivo aspx tengo: = Html.DropDownList ("SiteID", ViewData ["Sites"] como SelectList)
En el archivo cs tengo:
ViewData ["Sites"] = new SelectList (pr.GetUnassignedPortfolioSites (GetAuthenticatedContext (), id), "SiteID", "SiteName");
Funciona, sin embargo, necesito ordenar la Lista de selección para que esté bien ordenada cuando se selecciona el menú desplegable.
Además, necesitaría seleccionar un elemento de la lista y hacer que aparezca un primer elemento visible antes de hacer clic en el menú desplegable.
¡Muchas gracias por su ayuda!
PD He intentado mirar a través de otros ejemplos, pero no tuve suerte.
Respuestas
0 para la respuesta № 1Lo he cambiado un poco, parece que SelectList
tiene algunos problemas para establecer el elemento seleccionado por defecto.
Mira este:
@{
List<SelectListItem> list = (List<SelectListItem>)ViewData["Sites"];
list.Where(x => x.Value == "1").Single().Selected = true;
}
@Html.DropDownList("SiteID", list.OrderBy(x => x.Selected).ThenBy(x => x.Text))
Y el controlador:
List<SelectListItem> items = new List<SelectListItem>();
items.Add(new SelectListItem { Text = "Action", Value = "0" });
items.Add(new SelectListItem { Text = "Drama", Value = "1" });
items.Add(new SelectListItem { Text = "Comedy", Value = "2" });
items.Add(new SelectListItem { Text = "Science Fiction", Value = "3" });
ViewData["Sites"] = items;