下拉列表的DataBind上的奇怪异常

时间:2012-03-23 10:00:57

标签: asp.net exception

我对此代码有一个例外:

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

抛出了类型'System.Web.HttpUnhandledException'的异常。 --->   System.ArgumentOutOfRangeException:'ddlSalesMgr'有一个SelectedValue   这是无效的,因为它不存在于项目列表中。

为什么这个东西扔在这里?我已将SelectedValue设置为null ...

2 个答案:

答案 0 :(得分:0)

试试这个:

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

您无法选择索引-1,因为它从0开始

答案 1 :(得分:0)

您不能使用SelectedIndex = -1。请记住,如果在执行DataSource / DataBind调用后调用它,ddlSalesMgr.Items.Add将在底部添加一个新的Listitem元素,因此请使用ddlSalesMgr.Items.Insert方法,例如......

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

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

将“请选择”下拉项添加到顶部。

如前所述,在下拉列表中总会有一个项目被选中(ListBoxes与我相信不同),如果没有明确选择,则默认为最高项目。

相关问题