Попробуйте это:
List<Person> list = new List<Person>();
// populate the list somehow
if ( !IsPostBack )
{
DropDownList ddl = new DropDownList();
ddl.DataTextField = "Name";
ddl.DataValueField = "Id";
ddl.DataSource = list;
ddl.DataBind();
ddl.SelectedValue = list.Find( o => o.Selected == true ).Id.ToString();
}
Если вы не можете гарантировать, что всегда будет хотя бы один выбранный элемент, вам нужно будет обработать это отдельно, проверив возвращаемое значение из вызова list.Find()
, чтобы убедиться, что оно не null
.
Также, DropDownList ddl = new DropDownList (); не требуется, если веб-форма уже объявила:
<asp:DropDownList ID="ddl" runat="server" />