Paw*_*zyk 3 asp.net validation customvalidator
我有问题:我的页面上有一个自定义验证器,用于验证imieTextbox控件.但它不起作用.我不知道为什么.
这个方法来自register.aspx.cs文件:
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
//of course here will be other validation logic but setting IsValid property ti false is for example
args.IsValid = false;
}
Run Code Online (Sandbox Code Playgroud)
这来自fromregister.aspx文件:
<asp:CustomValidator ID="CustomValidator1" runat="server"
ControlToValidate="imieTextbox" Display="Dynamic"
ErrorMessage="CustomValidator"
onservervalidate="CustomValidator1_ServerValidate" ValidateEmptyText="True"
ValidationGroup="A"></asp:CustomValidator>
Run Code Online (Sandbox Code Playgroud)
页面上的提交按钮具有属性CausesValidation设置为TRUE并具有验证组A(与我页面上的所有验证器一样).所有验证器(requiredfield验证器)工作正常,但自定义验证器不工作.这是为什么?我究竟做错了什么?
你必须打电话
if (Page.IsValid)
Run Code Online (Sandbox Code Playgroud)
在服务器上回发时,否则将不会调用您的服务器验证.RequiredFieldValidator在客户端上验证,这就是为什么这个工作正常.但是,您应该始终在服务器上进行验证.
对于客户端验证,您必须编写一个JavaScript方法.您在CustomValidator中设置属性:
ClientValidationFunction="YourValidationMethod"
Run Code Online (Sandbox Code Playgroud)
并且该方法执行类似的操作
function YourValidationMethod(source, args)
{
if (valid) // do check here
args.IsValid = true;
else
args.IsValid = false;
}
Run Code Online (Sandbox Code Playgroud)