2013-07-17 41 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

相關問題