2010-09-23 231 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; 
    }