0

我已经通读了这篇文章,这有助于我将验证问题缩小InitialValueRequiredFieldValidator.

我的下拉列表是由后面的代码填充的对象列表,如下所示;

brands.Insert(0, Brand.Empty)

cbBrand.DataValueField = "ID";
cbBrand.DataTextField = "Name";
cbBrand.DataSource = new BindingList<Brand>(brands);
cbBrand.DataBind();

其中 Brand.Empty 是一个空对象类型。

我要解决的问题是IntialValue接受空值。例如,InitialValue=""无法识别列表中的空对象。

谁能指出我解决这个问题的方向?

4

2 回答 2

1

空字符串与空值不同。不要将空值添加到您的数据源,而是直接将其添加到下拉列表中,如下所示:

cbBrand.Insert(0, new ListItem("", "Select an item"));

这将为您的 HTML 选择元素添加一个值为 "" 的选项,该选项与验证器的初始值匹配。

于 2011-07-12T03:12:45.757 回答
0

哇。我以为我在发布这个问题之前已经在这个网站上非常彻底地搜索了以前的答案,但我错过了这个

答案是改变你<asp:DropDownList>的属性AppendDataBoundItems=true,然后<asp:ListItem Text="" Value="" />在 dropDownList 标签和 BAM 之间添加一个!您可以向列表中插入一个值,该值不需要在后面的代码中插入空对象(应将其删除,以免列表开头出现 2 个空格)。

这里的好处是我的代码隐藏中的列表绑定到一个对象类型<Brand>,但是在客户端添加空字符串对于客户端验证来说效果很好。

希望这可以帮助其他在这个问题上苦苦挣扎的人!

于 2011-07-12T23:18:52.067 回答