2つのチェックボックスを検証しようとしています。フォームを有効にするには、そのうちの1つをチェックする必要があります。CustomValidatorコントロールを使用して、サーバーで検証したいと思います。
(この.ascxページは、別の.aspxページに表示されるフォームです。)
まず、.ascxページにチェックボックスとCustomValidatorコントロールを配置します。このような:
<tr>
<td colspan="3">
<input type="checkbox" runat="server" name="EmailCourse" class="" id="EmailCourse" value="" />
Email course
<asp:CustomValidator id="CustomValidator1" runat="server" ErrorMessage="No checkbox checked"
OnServerValidate="validateCheckBoxes_ServerValidate">
</asp:CustomValidator>
</td>
</tr>
<tr>
<td colspan="3">
<input type="checkbox" runat="server" name="SpecialReport" class="" id="SpecialReport" value="" />
Special report
</td>
</tr>
次に、次のように、.ascx.csページの分離コードにvalidateCheckBoxes_ServerValidate関数を追加しました。
protected void validateCheckBoxes_ServerValidate(object source, ServerValidateEventArgs args)
{
if (!EmailCourse.Checked && !SpecialReport.Checked)
args.IsValid = false;
else
args.IsValid = true;
}
ローカルサイトでこのフォームを使用しているページを開いて、どのように表示されるかを確認しようとすると、次のようなエラーが発生します。
説明:このリクエストを処理するために必要なリソースのコンパイル中にエラーが発生しました。以下の特定のエラーの詳細を確認し、ソースコードを適切に変更してください。
コンパイラエラーメッセージ:CS1061:「ASP.common_controls_specialreportform_ascx」には「validateCheckBoxes_ServerValidate」の定義が含まれておらず、「ASP.common_controls_specialreportform_ascx」タイプの最初の引数を受け入れる拡張メソッド「validateCheckBoxes_ServerValidate」が見つかりませんでした(usingディレクティブまたはアセンブリリファレンス?)
と:
エラーCS1061:「ASP.common_controls_specialreportform_ascx」に「validateCheckBoxes_ServerValidate」の定義が含まれておらず、「ASP.common_controls_specialreportform_ascx」タイプの最初の引数を受け入れる拡張メソッド「validateCheckBoxes_ServerValidate」が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか? )。
このエラーの原因を知っている人はいますか?私はasp.netを初めて使用し、これに問題があります。
ありがとう!