我尝试创建自定义验证程序以验证复选框并出现此错误: “无法验证由”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 ;
}
我可以帮忙解决这个问题吗?
答案 0 :(得分:4)
从CustomValidator1中删除ControlTovalidate值。它不需要在那里复选框。
MSDN参考
使用ControlToValidate属性指定要验证的输入控件。必须将此属性设置为除CustomValidator控件之外的所有验证控件的输入控件的ID,该控件可以留空。如果未指定有效的输入控件,则在呈现页面时将引发异常。 ID必须引用与验证控件在同一容器中的控件。它必须位于同一页面或用户控件中,或者必须位于模板化控件的同一模板中。 可以验证的标准控件是:
答案 1 :(得分:1)
与CheckBox一起使用时,您不需要为CustomValidator设置ControlToValidate属性,只需在服务器验证中使用它,如:
args.IsValid = cbVerify.Checked;