2014-06-12 22 views
-3

我试图要求填写一组字段中的全部或全部。换句话说,如果填写了所有字段,则必须填写。以下是我尝试的。我错过了什么来完成这项工作?ASP.NET自定义验证器 - 全部或没有值

ASP.NET标记:

<asp:CustomValidator 
    id="CustomValidator" 
    ErrorMessage="All or none of the fields must be filled out" 
    ForeColor="Red" 
    OnServerValidate="CustomValidator_ServerValidate" 
    runat="server" /> 

C#:

protected void CustomValidator_ServerValidate(object source, ServerValidateEventArgs args) 
{ 
    if ((String.IsNullOrEmpty(field1.Text) && 
     String.IsNullOrEmpty(field2.Text) && 
     String.IsNullOrEmpty(field3.Text)) || 
     (!String.IsNullOrEmpty(field1.Text) && 
     !String.IsNullOrEmpty(field2.Text) && 
     !String.IsNullOrEmpty(field3.Text))) 
    { 
     args.IsValid = true; 
    } 
    else 
    { 
     args.IsValid = false; 
    } 
} 

感谢您的任何帮助。

+2

这是一个问答网站......我看不出你的问题 – freefaller

回答

0

在您的按钮提交,你为Page.IsValid

检查自定义的验证,将不会触发没有入住手续。

protected void btnSubmit_Click(args) { 
    if (Page.IsValid) { 
    //do something 
    } 
} 
+0

不,我没有,但我是用CustomValidator.IsValid。我会尝试page.isvalid – samjk14

+0

即使在if(Page.IsValid){}内部,它也允许我提交表单。 – samjk14

+0

CustomValidator不会阻止提交表单,但会引发表单错误,您可以在ValidationSummary中显示或者显示CustomValidator。只要您在检查Page.IsValid后不继续处理表单。那有意义吗? –