私はカスタムバリデーターを持っています:
<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を介してコントロールをループすることでこのような検証を行いましたが、ページがマスターページを介して渡されたフォームを使用しているため、これは使用できません。