2012-03-23 134 views
0

的DataBind已異常奇怪我得到這個代碼的異常:在下拉列表

ddlSalesMgr.SelectedIndex = -1; 
ddlSalesMgr.SelectedValue = null; 
ddlSalesMgr.DataBind(); 

類型「System.Web.HttpUnhandledException」的異常被拋出。 ---> System.ArgumentOutOfRangeException:'ddlSalesMgr'有一個SelectedValue ,這是無效的,因爲它不存在於項目列表中。

爲什麼這個東西在這裏扔?我設置的SelectedValue爲空...

+0

如果您刪除前兩行,會發生什麼? – 2012-03-23 10:03:01

+0

您的選擇不存在。首先綁定下拉菜單。索引也從0開始,而SelectedValue是一個字符串。 – Kaf 2012-03-23 10:12:31

回答

0

試試這個:

ddlSalesMgr.DataBind(); 
ddlSalesMgr.SelectedIndex = 0; 

您不能選擇指數-1,因爲它從0開始

0

不能使用的SelectedIndex = -1 。裸記ddlSalesMgr.Items.Add在底部,如果你不是如執行數據源/ DataBind已調用,這樣使用ddlSalesMgr.Items.Insert方法後,調用它會增加一個新的ListItem元素...

ddlSalesMgr.DataSource = DataAccess.GetDropDownItems(); // Psuedo Code 
ddlSalesMgr.DataTextField = "Value"; 
ddlSalesMgr.DataValueField = "Id"; 
ddlSalesMgr.DataBind(); 

ddlSalesMgr.Items.Insert(0, new ListItem("Please select", "")); 

將增加'請選擇'下拉項目頂部。

如前所述,在下拉列表中選擇的項目總是隻有一個(ListBoxes與我相信的不同),如果沒有明確選擇,則默認爲最上面的項目。