Это такая же проблема обслуживания кода, как и проблема кода, но у меня есть веб-форма, которая больше не проверяет ее CustomValidator. Это сработало, когда я последний раз касался кода более года назад, но теперь он больше не работает, когда пользователь запросил некоторые изменения ...
WebForm содержит раскрывающийся список с привязкой к данным с элементом по умолчанию «- All -» со значением 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>





Некоторые шаги по устранению неполадок:
Я бы серьезно посмотрел на ValidationGroup.
Если что-то было исключено из группы, это больше не будет проверяться. В противном случае убедитесь, что у вас нет ошибок javascript (на стороне клиента) и что у метода «OnServerValidate» есть точка останова внутри.
Находится ли валидатор в той же группе валидаторов, что и кнопка отправки?
Я заметил пару проблем
Большое спасибо, ValidateEmptyText тоже вызывал мою проблему.
Спасибо, свойство ValidateEmptyText тоже вызывало у меня проблему.
CustomValidator не срабатывает, если проверяемый элемент управления имеет пустое значение, поэтому CustomValidator всегда должен сопровождаться RequiredFieldValidator.
ValidateEmptyText делает свое дело, но мне интересно, почему в прошлом году это не было проблемой. Изменилось ли поведение ValidateEmptyText? В противном случае мое значение по умолчанию должно быть изменено.