2008-11-11 6 views
0

Это проблема с обслуживанием кода как проблема с кодом, но у меня есть WebForm, который больше не проверяет его CustomValidator. Он работал, когда я последний раз коснулся кода больше года назад, но теперь он больше не работает, когда пользователь запросил некоторые изменения ...Что вы подозреваете, когда ASP.NET игнорирует CustomValidator?

WebForm содержит раскрывающийся список данных с по умолчанию «- Все» - item с параметром String.Empty. Когда пользователь нажимает кнопку отправки, валидатор должен проверить, что выпадающее значение не является String.Empty. Я установил точки останова в код проверки клиента и код проверки сервера, но не огонь.

Где бы вы хотели начать поиск? Каковы обычные подозреваемые? Я, конечно, сравнивал свою рабочую копию с тем, что находится в контроле источника, но ничего не выказывает, как подозрительное.

Только в случае, если это имеет значение, вот мой код:

<asp:DropDownList ID="_AssessmentDropDown" runat="server" DataSourceID="_AssessmentsData" CausesValidation="true" AutoPostBack="false" 
    DataTextField="AssessmentName" DataValueField="AssessmentName" OnDataBound="_HandleAssessmentsBound"> 
</asp:DropDownList> 
<asp:CustomValidator ID="_AssessmentValidator" runat="server" ClientValidationFunction="_HandleValidateAssessment_Client" 
    ControlToValidate="_AssessmentDropDown" ErrorMessage="* You must select an Assessment." 
    OnServerValidate="_HandleValidateAssessment" /> 
<asp:ObjectDataSource ID="_AssessmentsData" runat="server" 
    OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" 
    TypeName="DataTableAdapters.GET_GRADE_ASSESSMENTSTableAdapter"> 
    <SelectParameters> 
     <asp:ControlParameter Name="GRADECODE" ControlID="_GradeCodeDropDown" PropertyName="SelectedValue" /> 
    </SelectParameters> 
</asp:ObjectDataSource> 

ответ

5

Я заметил несколько вопросов

  • Я не думаю, что вам нужно CausesValidation = True, если AutoPostBack установлен в ложном
  • Вы не используете группы проверки, так что не может быть причиной
  • Почему бы не использовать RequiredFieldValidator?
  • Если вы хотите, чтобы огнь проверки на пустых полях, установите свойство ValidateEmptyText к истинному
+0

ValidateEmptyText делает трюк, но мне интересно, почему в прошлом году это не было проблемой. Изменено поведение ValidateEmptyText? Если нет, мое значение по умолчанию должно быть изменено. – flipdoubt 2008-11-11 19:54:36

0

Некоторые шаги по устранению неполадок:

  • Является ли это единственный валидатор на форме?
  • Подходит ли для проверки на странице?
  • Включена ли проверка для целевого контроля?
  • Включен ли валидатор?
0

Я бы серьезно посмотрел на ValidationGroup.

Если что-то не указано в группе, оно больше не будет проверяться. В противном случае убедитесь, что у вас нет ошибки javascript (для клиентской стороны) и что метод «OnServerValidate» имеет точку останова внутри.

0

Является ли валидатор в той же группе валидатора, что и кнопка отправки?

1

А CustomValidator не срабатывает, если управление его проверка имеет пустое значение, поэтому CustomValidator должен всегда сопровождаться RequiredFieldValidator