RequiredFieldValidator в раскрывающемся списке не принимает IntialValue для нулевого объекта - PullRequest
0 голосов
/ 12 июля 2011

Я прочитал этот , который помог мне сузить мои проблемы с проверкой до свойства InitialValue RequiredFieldValidator.

Мой раскрывающийся список - это список объектов, которые заполняются кодом, подобным этому;

brands.Insert(0, Brand.Empty)

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

где Brand.Empty - это нулевой тип объекта.

То, куда я иду, отклеивается - это получение IntialValue для принятия нулевого значения. Например, InitialValue="" не может распознать пустой объект в списке.

Может кто-нибудь указать мне в направлении исправления для этого?

Ответы [ 2 ]

1 голос
/ 12 июля 2011

Пустая строка не совпадает с нулевым значением.Вместо добавления нулевого значения в ваш источник данных, добавьте его непосредственно в раскрывающийся список, например:

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

Это добавит параметр в ваш HTML-элемент выбора со значением "", которое соответствует валидаторамНачальное значение.

0 голосов
/ 13 июля 2011

Ничего себе.Я думал, что очень тщательно искал предыдущие ответы на этом сайте, прежде чем опубликовать этот вопрос, но я пропустил this !!

Ответ - изменить свой <asp:DropDownList>, чтобы иметь свойство AppendDataBoundItems=true, затем добавьте <asp:ListItem Text="" Value="" /> между тегами dropDownList и BAM!Вы можете вставить значение в список, который не требует нулевого объекта, вставленного в код позади (который должен быть удален, чтобы не допустить появления двух пробелов в начале списка).

Преимущество здесь в том, что список в моем коде позади привязан к типу объекта <Brand>, но добавление пустой строки на клиенте прекрасно работает для проверки на стороне клиента.

Надеюсь, это поможет кому-то еще боротьсяс этой проблемой!

...