Ситуация: Я заполняю SqlDatasource DropDownList переменной строки SQL, которая зависит от ввода пользователем на странице (при необходимости, используя разные таблицы). После установки соответствующей строки я использую DataBind для SqlDataSource, чтобы заполнить раскрывающийся список соответствующими данными и вручную добавить один параметр («Все») к значениям. Я делаю это в Page_Load страницы (тогда я знаю, какую строку SQL использовать).C# asp dropdownlist databind empty dataset selectedindex
Проблема: Это прекрасно работает, если SQL не возвращает пустой набор данных. Если это так, страница изначально загружается с пустыми списками, кроме «Все». После этого, независимо от того, что я делаю (например, нажмите какую-то совершенно несвязанную кнопку), я получаю в NEXT Page_Load страницы: System.ArgumentOutOfRangeException не был обработан кодом пользователя Message = 'KLFDDropDownList' имеет SelectedIndex, который является недопустимым, поскольку он не существует в списке элементов. Значение SelectedIndex равно 0.
Что я делаю неправильно?
if (Typeselection == "3") KLFDSqlDataSource.SelectCommand = KLFDSQLhistorie;
else KLFDSqlDataSource.SelectCommand = KLFDSQL;
KLFDSqlDataSource.SelectParameters.Clear();
KLFDSqlDataSource.SelectParameters.Add("GBID", DbType.String, userName);
//User.Identity.Name);
//TODO KLFDDropDownList.DataBind();
Это должно быть помечено asp.net, а не классический – John