5

チェックボックスを検証するカスタム バリデータを作成しようとしたところ、「'CustomValidator1' の ControlToValidate プロパティによって参照されるコントロール 'cbVerify' を検証できません。

これが私がこれのために持っているフロントエンドコードです:

<li>
  <asp:CheckBox ID="cbVerify" runat="server" Text="I certify that the information entered on this form is correct and accurate."  />
</li>
<li>
  <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Please check" Display="Dynamic" ControlToValidate="cbVerify" OnServerValidate="CustomValidator1_ServerValidate" CssClass="ValidationError"></asp:CustomValidator>
</li>

バックエンド:

 protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
 {
     args.IsValid = cbVerify.Checked ;     
 }

これを理解するための助けを得ることができますか?

4

2 に答える 2

6

CustomValidator1 から ControlTovalidate 値を削除します。チェックボックスのためにそこにある必要はありません。

MSDNリファレンス

ControlToValidate プロパティを使用して、検証する入力コントロールを指定します。このプロパティは、空白のままにできる CustomValidator コントロールを除くすべての検証コントロールの入力コントロールの ID に設定する必要があります。有効な入力コントロールを指定しないと、ページのレンダリング時に例外がスローされます。ID は、検証コントロールと同じコンテナー内のコントロールを参照する必要があります。同じページまたはユーザー コントロール内にあるか、テンプレート化されたコントロールの同じテンプレート内にある必要があります。検証可能な標準コントロールは次のとおりです。

  • System.Web.UI.WebControls.DropDownList
  • System.Web.UI.WebControls.FileUpload
  • System.Web.UI.WebControls.ListBox
  • System.Web.UI.WebControls.RadioButtonList
  • System.Web.UI.WebControls.TextBox
  • System.Web.UI.HtmlControls.HtmlInputFile
  • System.Web.UI.HtmlControls.HtmlInputPassword
  • System.Web.UI.HtmlControls.HtmlInputText
  • System.Web.UI.HtmlControls.HtmlSelect
  • System.Web.UI.HtmlControls.HtmlTextArea
于 2013-08-02T19:52:17.780 に答える
1

CustomValidate を CheckBox と共に使用する場合は、CustomValidate の ControlToValidate プロパティを設定する必要はなく、次のように Server Validate でこれを使用するだけです。

args.IsValid = cbVerify.Checked;
于 2013-08-02T19:51:25.233 に答える