Обязательный валидатор полей и динамические выпадающие списки

#c# #asp.net #requiredfieldvalidator

#c# #asp.net #requiredfieldvalidator

Вопрос:

Я создаю страницу сбора данных с выпадающими списками, которые динамически заполняются из базы данных. Я добавил средства проверки обязательных полей, но они не запускаются, предположительно потому, что средство проверки считает, что выбрано первое поле. Есть ли способ обойти эту проблему?

Я попробовал следующее, но получаю ошибку:

Объекту не присвоен экземпляр объекта (что-то вроде этого)

Вот мой код (в верхней части события загрузки страницы)

 if (!IsPostBack)
{
    dropList.SelectedItem.Value = "";
}
  

Спасибо!

Ответ №1:

Не видя вашего кода, я бы первым делом предположил, что в ваших проверках обязательных полей может отсутствовать поле IntitialValue, например, если начальное значение вашего выпадающего списка было чем-то вроде «Пожалуйста, выберите опцию», тогда ваш средство проверки обязательных полей может выглядеть следующим образом:

   <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" Display="Dynamic" ControlToValidate="ddlProvince" InitialValue="Please Choose an option"></asp:RequiredFieldValidator>
  

Если вы уже сделали это, то, я думаю, дополнительная информация — возможно, еще немного кода — может быть полезна для понимания того, что происходит.

Ответ №2:

Установите начальное значение равным 0, оно отлично работает.

Ответ №3:

Перед этим :dropList.SelectedItem.Value = ""; следует проверить, является ли ddl пустым или нет. В противном случае будет выдана ошибка 'Object not set to instance of an object'