自定义验证器错误

时间:2013-08-02 19:37:46

标签: c# asp.net forms web

我尝试创建自定义验证程序以验证复选框并出现此错误: “无法验证由”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 ;     
 }

我可以帮忙解决这个问题吗?

2 个答案:

答案 0 :(得分:4)

从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

答案 1 :(得分:1)

与CheckBox一起使用时,您不需要为CustomValidator设置ControlToValidate属性,只需在服务器验证中使用它,如:

args.IsValid = cbVerify.Checked;