Я ленивый - и я использую SQLDataSource для заполнения моих dropdownLists.
Событие Databind для объектов с привязкой к данным вызывается перед Page.PreRender, поэтому я делаю что-то подобное в PreRender eventHandler:
private void InitializeDropDown()
{
this.myDropDown.Items.Insert(0, new ListItem("-- Select something --"));
}
Я знаю, что могу установить элементы AppendDataBound в true и жестко закодировать свой пользовательский элемент в разметке, но прежде чем вернуться к этому, я хотел бы понять, почему то, что я делаю, не работает.
Обычно это работает, когда я динамически связываю вещи так:
myDropDown.DataTextField = "whatever";
myDropDown.DataValueField = "ID";
myDropDown.DataSource = GetStuff();
myDropDown.DataBind();
myDropDown.Items.Insert(0, "-- Select something --");
То, что я делаю, должно быть эквивалентным - единственная разница в том, что я использую SQLDataSource.
Любая помощь приветствуется!