2012-03-23 96 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与我相信的不同),如果没有明确选择,则默认为最上面的项目。