Situation: 我使用一个变量SQL字符串填充DropDownList的SqlDatasource,该字符串取决于页面上的用户输入(根据需要使用不同的表格)。在设置适当的字符串之后,我使用SqlDataSource的DataBind来填充下拉列表中的相应数据,然后手动向这些值添加一个选项(“全部”)。我在页面的Page_Load中执行此操作(这是当我知道使用什么SQL字符串时)。C#asp dropdownlist databind empty dataset selectedindex
问题: 这工作正常,只要SQL不返回一个空的数据集。如果是,则页面最初加载空的下拉列表值,但“全部”除外。之后,无论我做什么(例如,单击一些完全无关的按钮),我都会进入页面的下一页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