2013-07-17 48 views
0

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(); 
+0

这应被标记asp.net,不是经典的 – John

回答

0

可能是你逝去的下拉列表中选择指数作为数据源的指标,从下拉你得到指数0,但数据源是空的,所以没有0指数

+0

不,SQL字符串是基于其他的东西,没有选择索引 – Jur

+0

在页面加载时,你是用下拉选择的索引值 –

+0

不是,不用它。甚至没有在初始加载成功时使用dd(使用空集...) – Jur

相关问题