2014-01-11 59 views
0

我嘗試指定範圍從4到13.但它保持錯誤「MaximumValue 13不能小於RangeValidator1的MinimumValue 4」。我該如何解決這個問題。這裏是我的代碼:RangeValidator指定範圍時發生錯誤


 <asp:TextBox ID="TextBox2" runat="server" ValidationGroup="Group1"></asp:TextBox> 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
       ControlToValidate="TextBox2" ErrorMessage="กรุณากรอก Password" ForeColor="Red" 
       ValidationGroup="Group1">*</asp:RequiredFieldValidator> 
    <asp:RangeValidator ID="RangeValidator1" runat="server" 
       ControlToValidate="TextBox2" 
       ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red" 
       MaximumValue="13" MinimumValue="4" Type="String" EnableClientScript="false">*</asp:RangeValidator> 

這是按鈕的代碼:


protected void Button2_Click1(object sender, EventArgs e) 
    { 
     try 
     { 
      if (Page.IsValid) 
      { 

      } 
      else 
      { 
       Insert(); 
      } 
     } 
     catch (Exception ex) 
     { 

     } 
    } 

任何幫助表示讚賞。

回答

1

RangeValidator驗證控件的值,而不是值的長度。對於字符串比較「13」小於「4」,所以你得到「最大<分鐘」的錯誤。

您應該使用的RegularExpressionValidator檢查輸入長度:

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
      ControlToValidate="TextBox2" 
      ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red" 
      ValidationExpression="^.{4,13}$" ValidationGroup="Group1" EnableClientScript="false">*</asp:RegularExpressionValidator> 
+0

嗨,我嘗試按照你說的使用RegularExpressionValidator。但它不是有效的。當我在文本框中輸入2個字符並點擊按鈕時什麼都沒有發生。 –

+0

您的原始代碼錯過了RangeValidator的ValidationGroup =「Group1」。嘗試將其添加到正則表達式驗證器。 – PashaPash

+0

這是工作。非常感謝。 :) –

2

當您將RangeValidator用於整數類型值時,請設置Integer類型。

<asp:RangeValidator ID="RangeValidator1" runat="server" 
       ControlToValidate="TextBox2" 
       ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red" 
       MaximumValue="13" MinimumValue="4" Type="Integer" EnableClientScript="false">*</asp:RangeValidator> 

但我很驚訝你使用RangeValidator和密碼字段。在這種情況下,您限制用戶將值設置爲4-13。 您可能想檢查輸入的長度。爲此,您使用正則表達式驗證程序。

<asp:RegularExpressionValidator ID="RegexVal" ValidationExpression="^.{4,13}$" runat="server" ErrorMessage="Password must be 4-13 character long" ControlToValidate="TextBox2" /> 
+0

類型=「整數」是一個好主意。非常感謝。 –

1

的類型應該爲整數,而不是字符串

<asp:RangeValidator ID="RangeValidator1" runat="server" 
      ControlToValidate="TextBox2" 
      ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red" 
      MaximumValue="13" MinimumValue="4" Type="Integer" EnableClientScript="false">* 
</asp:RangeValidator> 

谷歌翻譯下面的錯誤消息。 密碼必須由4-13個字符組成。

PashaPash的回答https://stackoverflow.com/a/21060857/263003是正確的

1

指定的數據,你會檢查類型,目前,被設置爲字符串。 「4」大於「13」,這就是爲什麼你會得到這樣的錯誤。將控件中的Type參數更改爲Integer,它應該可以工作。