Reputation: 50097
I am lazy - and I am using a SQLDataSource to populate my dropdownLists.
The Databind event for the databound objects is called before the Page.PreRender so I am doing something like this in the PreRender eventHandler:
private void InitializeDropDown()
{
this.myDropDown.Items.Insert(0, new ListItem("-- Select something --"));
}
I know I can set AppendDataBound items to true and hardcode my custom item in the markup but before reverting to that I'd like to understand why what I am doing is not working.
It usually works when I bind stuff dynamically like this:
myDropDown.DataTextField = "whatever";
myDropDown.DataValueField = "ID";
myDropDown.DataSource = GetStuff();
myDropDown.DataBind();
myDropDown.Items.Insert(0, "-- Select something --");
What I am doing should be equivalent - only difference is I am using a SQLDataSource.
Any help appreciated!
Upvotes: 2
Views: 5479
Reputation: 50097
I set AppendDataBoundItems="true"
for the dropDwonList and it works like charme!
I thought it was supposed to be used only in presence of hardcoded list items in the markup. I was wrong.
Upvotes: 4
Reputation: 1529
Put your insert line on the OnSelected method of the datasource
myDropDown.Items.Insert(0, "-- Select something --");
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasource.selected.aspx
Upvotes: 4