如何动态应用验证控件CompareValidator

需求  
  TextBox1   填入整数  
  TextBox2   也填入整数  
   
  现需要验证   (textBox2   >=   TextBox1   *   10%)   and   (textBox2   <=   TextBox1   *   50%)  
   
  不知道如何实现?请给指点迷津

 

you   need   a   CustomValidator,   not   CompareValidator,   something   like   (you   need   to   use   a   RegularExpressionValidator   to   make   sure   the   user   enters   integers   only)  
   
  (the   example   is   based   on   the   MSDN   documentation   for   CustomValidator)  
   
  <%@   Page   Language="C#"   AutoEventWireup="True"   %>  
   
  <html>  
  <head>  
   
        <script   runat="server">  
   
              void   ValidateBtn_OnClick(object   sender,   EventArgs   e)    
              {    
   
                    //   Display   whether   the   page   passed   validation.  
                    if   (Page.IsValid)    
                    {  
   
                          Message.Text   =   "Page   is   valid.";  
   
                    }  
   
                    else    
                    {  
   
                          Message.Text   =   "Page   is   not   valid!";  
   
                    }  
   
              }  
   
              void   ServerValidation(object   source,   ServerValidateEventArgs   args)  
              {  
    args.IsValid   =   false;  
                    try    
                    {  
   
  int   n1   =   Convert.ToInt32(TextBox1.Text);  
  int   n2   =   Convert.ToInt32(TextBox2.Text);  
  if   ((n2   >=   n1*0.1)   &&   (n2   <=n1*0.5))  
                          args.IsValid   =   true;  
   
                    }  
   
                    catch(Exception   ex)  
                    {  
   
                          args.IsValid   =   false;  
   
                    }  
   
              }  
   
        </script>          
   
  </head>  
  <body>  
   
        <form   runat="server">  
       
              <h3>CustomValidator   ServerValidate   Example</h3>  
   
              <asp:Label   id="Message"      
                        Text="Enter   an   even   number:"    
                        Font-Name="Verdana"    
                        Font-Size="10pt"    
                        runat="server"/>  
   
              <p>  
   
              <asp:TextBox   id="TextBox1"    
                        runat="server"   />  
   
              <asp:TextBox   id="TextBox2"    
                        runat="server"   />  
           
              &nbsp;&nbsp;  
   
              <asp:CustomValidator   id="CustomValidator1"  
                        ControlToValidate="TextBox1"  
        TheOtherControl="TextBox2"  
                        Display="Static"  
                        ErrorMessage="condition   not   satisfied"  
                        ForeColor="green"  
                        Font-Name="verdana"    
                        Font-Size="10pt"  
                        OnServerValidate="ServerValidation"  
        ClientValidationFunction="ClientValidate"  
                        runat="server"/>  
   
              <p>  
     
              <asp:Button   id="Button1"  
                        Text="Validate"    
                        OnClick="ValidateBtn_OnClick"    
                        runat="server"/>  
   
        </form>  
       
  </body>  
  </html>  
   
  <script   language="javascript">  
  function   ClientValidate(source,   arguments)  
  {  
        arguments.IsValid   =   false;  
        var   n1   =   parseInt(arguments.Value);  
        var   n2   =   parseInt(document.getElementById(source.TheOtherControl).value);  
   
        if   ((n2   >=   n1   *   0.1)   &&   (n2   <=n1*0.5))  
  arguments.IsValid   =   true;  
         
  }  
  </script>   
   

posted on 2010-02-26 15:53  sothis  阅读(562)  评论(0)    收藏  举报

导航