情况:我正在用一个变量 SQL 字符串填充 DropDownList 的 SqlDatasource,该字符串取决于页面上的用户输入(根据需要使用不同的表)。设置适当的字符串后,我使用 SqlDataSource 的 DataBind 用适当的数据填充下拉列表,并手动将一个选项(“All”)添加到值中。我在页面的 Page_Load 中执行此操作(那时我知道要使用什么 SQL 字符串)。
问题:只要 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();