我有一些填写下拉列表的代码:
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
答案 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();
}