下拉列表填充以空值引发错误

时间:2010-09-28 19:48:23

标签: c# asp.net drop-down-menu

我有一些填写下拉列表的代码:

pn.DataSource = Datatbl.Tables["datalist"];
pn.DataValueField = "partnumber";
pn.DataTextField = "partnumber";
pn.DataBind();
pn.Items.Insert(0, "");
pn.SelectedValue = ligne["pn"].ToString();

当数据库中的值为null(“”)时,它会抛出此错误:

System.ArgumentOutOfRangeException: 'pn' has a SelectedValue which is invalid because it does not exist in the list of items. Parameter name: value

2 个答案:

答案 0 :(得分:0)

我建议当on为null时,默认为空白项:

pn.DataSource = Datatbl.Tables["datalist"];
pn.DataValueField = "partnumber";
pn.DataTextField = "partnumber";
pn.DataBind();
pn.Items.Insert(0, "");

if (!Convert.IsDBNull(ligne["pn"])
{
    pn.SelectedValue = ligne["pn"].ToString();
}
else
{
    pn.SelectedIndex = 0;
}

答案 1 :(得分:0)

如果您不确定总是有一个有效值,那么在设置所选值之前,您应该检查它是否是有效值:

if (pn.Items.FindByValue(ligne["pn"].ToString()) != null)
{
    pn.SelectedValue = ligne["pn"].ToString();
}