У меня есть пользовательский валидатор:
<asp:CustomValidator ID="QuestionValidator" runat="server" ErrorMessage="Please select an option" ClientValidationFunction="QuestionValidator_ServerValidate" OnServerValidate="QuestionValidator_ServerValidate" ValidateEmptyText="true"></asp:CustomValidator>
У меня есть список вопросов, предоставленный специалистом по обработке данных, который мне нужен, чтобы убедиться, что пользователь выбирает ответ на каждый вопрос.Затем у меня есть свои функции проверки:
Protected Sub QuestionValidator_ServerValidate(ByVal source As Object, ByVal args As ServerValidateEventArgs)
Dim SelectedItem As Boolean = False
For Each c As Control In Page.Master.FindControl("form1").Controls
If TypeOf c Is RadioButton Then
Dim rb As RadioButton = DirectCast(c, RadioButton)
If rb.GroupName = "AnswerOptions" AndAlso rb.Checked = True Then
SelectedItem = True
End If
End If
Next
args.IsValid = SelectedItem
End Sub
<script type="text/javascript" language="javascript">
function QuestionValidator_ServerValidate() {
return true;
}
</script>
Когда я запускаю страницу, проверка и сообщение об ошибке отсутствуют.Пожалуйста, вы можете указать, где я иду не так, я подозреваю, что это на Page.Master.FindControl("form1").Controls
.
Я ранее делал такую проверку, проходя через элементы управления через form1.controls, но это недоступно, поскольку страница используетформа передается через главную страницу.