2010-09-23 95 views
1

我有一个范围验证器如下。它用于限制1900年到2070年之间的值。但是,当我输入字母时也会引发错误。我希望只有当用户输入整数值时才会触发它。我如何克服它?请帮助..范围验证器 - 检查整数范围时输入字母

     <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="txtYear" 
          ValidationGroup="report" ErrorMessage="EM1|Year" MaximumValue="2079" MinimumValue="1900" 
          SetFocusOnError="True" Display="Dynamic" Type="Integer"> 
              <img src="../../Images/error.gif" alt="Format" /> 
         </asp:RangeValidator> 

回答

0

在这种情况下,您可以使用自定义验证器。 它可能看起来像这样

使用此为您的验证码 -

<asp:customvalidator ID="Customvalidator1" ControlToValidate="txtYear" runat="server" 
      EnableClientScript="true" 
      errormessage="CustomValidator" 
     onservervalidate="Customvalidator1_ServerValidate"></asp:customvalidator> 

使用这背后的代码 -

保护无效Customvalidator1_ServerValidate(对象源,ServerValidateEventArgs参数)

{ 

     int result; 

     if (int.TryParse(txtYear.Text,out result)) 
     { 
      if (1900 <= result && result <= 2079) 
       args.IsValid = true; 
      else 
       args.IsValid = false; 
     } 

     args.IsValid = true; 
    }