Перед установкой выбранного значения проверьте, есть ли элемент в списке, а затем выберите его по индексу
<asp:DropDownList id="dropDownList"
AutoPostBack="True"
OnDataBound="OnListDataBound"
runat="server />
protected void OnListDataBound(object sender, EventArgs e)
{
int itemIndex = dropDownList.Items.IndexOf(itemToSelect);
if (itemIndex >= 0)
{
dropDownList.SelectedItemIndex = itemIndex;
}
}
РЕДАКТИРОВАТЬ: Добавлено ...
Если вы выполняете связывание в Page Load, попробуйте выполнить следующие действия:
- Переместить весь связанный с привязкой код в переопределенный
DataBind()
метод
- В Page_Load из Page добавить: (в случае контроля не вызывайте DataBind напрямую, это ответственность родительской страницы)
if (!IsPostBack)
{
Page.DataBind(); // only for pages
}