日付を入力するための複合ユーザーコントロールがあります。
CustomValidatorには、サーバー側の検証コードが含まれます。ユーザーが何らかの方法で日付値を変更した場合、クライアント側のスクリプトを介してエラーメッセージをクリアしたいと思います。これを行うために、2つのドロップダウンと年のテキストボックスを検証コントロールに接続する次のコードを含めました。
<script type="text/javascript">
ValidatorHookupControlID("<%= ddlMonth.ClientID%>", document.getElementById("<%= CustomValidator1.ClientID%>"));
ValidatorHookupControlID("<%= ddlDate.ClientID%>", document.getElementById("<%= CustomValidator1.ClientID%>"));
ValidatorHookupControlID("<%= txtYear.ClientID%>", document.getElementById("<%= CustomValidator1.ClientID%>"));
</script>
ただし、ユーザーがクリアボタンをクリックしたときに検証エラーもクリアされるようにしたいと思います。ユーザーが[クリア]ボタンをクリックすると、他の3つのコントロールがリセットされます。ポストバックを回避するために、[クリア]ボタンは3つのコントロールをリセットするOnClickイベントを含む通常のHTMLボタンです。残念ながら、ValidatorHookupControlIDメソッドはHTMLコントロールでは機能しないようです。そのため、代わりにHTMLボタンをASPボタンに変更し、そのコントロールにフックアップすることを考えました。ただし、デフォルトでASPボタンコントロールに関連付けられているポストバック機能を削除できないようです。UseSubmitBehaviorをFalseに設定しようとしましたが、それでも送信されます。btnClear_OnClickクライアントコードでfalseを返そうとしましたが、ブラウザーに送信されたコードには、呼び出し後にDoPostback呼び出しが含まれていました。
btnClear.Attributes.Add("onClick", "btnClear_OnClick();")
OnClickコードを追加する代わりに、それを上書きしようとしましたが、DoPostBackコードは、ブラウザーに送信される最終的なコードに含まれていました。
クリックしたときにCustomValidatorエラーをクリアし、ポストバックを回避するために[クリア]ボタンを取得するにはどうすればよいですか?
btnClear.Attributes.Item("onClick") = "btnClear_OnClick();"