Я неоднократно сталкивался с этой проблемой и не знаю, в чем ее причина. Я получаю исключение в DataBind:
"SelectedValue which is invalid because it does not exist in the list of items"
Вот некоторые важные сведения:
- Я периодически перезагружаю listOrgs при изменении базовых данных.
- Вызов Organization.DTListAll возвращает около 500 пар Int, String.
- В возвращаемых данных нет повторяющихся или нулевых значений.
- После первых двух строк ниже listOrgs.Items.Count равно 0, а выбранное значение равно 0.
- Выбранное значение при выполнении операции DataBind — это значение, которого нет в наборе возвращаемых значений идентификатора.
listOrgs.Items.Clear();
listOrgs.SelectedValue = "0";
listOrgs.DataSource = new Organization().DTListAll(SiteID);
listOrgs.DataTextField = "OrganizationName";
listOrgs.DataValueField = "OrganizationID";
listOrgs.DataBind();