下拉列表填充会抛出空值错误

发布于 2024-09-24 23:55:03 字数 446 浏览 2 评论 0原文

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

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

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

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

I have some code which fills a dropdownlist:

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

and when the value in the Database in null (""), it throws this error:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

虐人心 2024-10-01 23:55:03

我建议当pn为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;
}

I suggest that when pn is null, you default to the blank item:

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;
}
蘑菇王子 2024-10-01 23:55:03

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

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

If your not sure you will always have a valid value then before setting the selected value you should check to see that it is a valid value:

if (pn.Items.FindByValue(ligne["pn"].ToString()) != null)
{
    pn.SelectedValue = ligne["pn"].ToString();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文