0

情况:我正在用一个变量 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();
4

1 回答 1

0

可能是您将下拉选择的索引作为其数据源的索引传递,因为从下拉列表中您得到索引 0 但数据源为空,因此没有 0 索引

于 2013-07-17T10:17:58.447 回答