【问题标题】:Custom Validator Error自定义验证器错误
【发布时间】:2013-08-04 04:43:54
【问题描述】:

我尝试创建自定义验证器来验证复选框并收到此错误: “无法验证 '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 ;     
 }

我可以得到一些帮助来解决这个问题吗?

【问题讨论】:

    标签: c# asp.net forms web


    【解决方案1】:

    从 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

    【讨论】:

      【解决方案2】:

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

      args.IsValid = cbVerify.Checked;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-24
        • 2011-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-15
        相关资源
        最近更新 更多