Estoy tratando de agregar elementos a una lista desplegable utilizando una lista de elementos de lista, pero no está recogiendo el valor (solo el texto).¿Cómo se agregan programáticamente ListItems a DropDownList en ASP.NET?
El código está abajo (simplificado del código realidad estoy usando):
PositionDropDown.DataSource = GetPositionOptions();
PositionDropDown.DataBind();
private List<ListItem> GetPositionOptions()
{
List<ListItem> items = new List<ListItem>();
items.Add(new ListItem("",""));
items.Add(new ListItem("Top (main)", "TOP"));
items.Add(new ListItem("Bottom (full width)", "BTM"));
items.Add(new ListItem("Bottom Left", "MIL"));
items.Add(new ListItem("Bottom Middle", "MID"));
return items;
}
Sin embargo, el HTML representado carece de los valores especificados en el segundo parámetro del constructor ListItem:
<option value=""></option>
<option value="Top (main)">Top (main)</option>
<option value="Bottom (full width)">Bottom (full width)</option>
<option value="Bottom Left">Bottom Left</option>
<option value="Bottom Middle">Bottom Middle</option>
¿Por qué no está utilizando el "valor" especificado y en su lugar simplemente repite el "nombre" al representar el HTML? ¿Qué estoy haciendo mal?
ahhh, maldición ... verlo ahora, pero tú también lo has visto :-) –