SelectedValue which is invalid because it does not exist in the list of items
asp.net, data-binding
Solution
Apparently the solution I posted wasn't entirely effective... Eventually in my application I changed to this:
listOrgs.Items.Clear();
listOrgs.SelectedIndex = -1;
listOrgs.SelectedValue = null;
listOrgs.ClearSelection(); // Clears the selection to avoid the exception (only one of these should be enough but in my application I needed all..)
listOrgs.DataSource = new Organization().DTListAll(SiteID);
listOrgs.DataTextField = "OrganizationName";
listOrgs.DataValueField = "OrganizationID";
listOrgs.DataBind();
Problem
I encounter this problem repeatedly, and haven't a clue what is causing it. I get an exception in the DataBind: `SelectedValue which is invalid because it does not exist in the list of items`. Here are some important pieces of information: - I reload listOrgs periodically when the underlying data has changed. - The Organization.DTListAll call returns 2 Int, String pairs. - There are no duplicate or null values in the returned data - After the first two lines below, listOrgs.Items.Count is 0, and the Selected Value is 0 - The selected value after the DataBind operation executes is the ID value from the first row in the data - This exception happens the very first time this code is executed after a fresh page load ``` listOrgs.Items.Clear(); listOrgs.SelectedValue = "0"; listOrgs.DataSource = new Organization().DTListAll(SiteID); listOrgs.DataTextField = "OrganizationName"; listOrgs.DataValueField = "OrganizationID"; listOrgs.DataBind(); ```