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

与 CheckBox 一起使用时,您不需要为 CustomValidator 设置 ControlToValidate 属性,只需在 Server Validate 中使用它,如下所示:

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