2014-07-03 54 views
1

如果我輸入的1.2.1的值到下面我RangeValidator控件,它驗證OKRangeValidator控件是讓幾個小數點

<asp:RangeValidator ID="RangeValidator8" runat="server" 
    ControlToValidate="TextBoxSAPPlannedHrs" 
    Display="None" ErrorMessage="Must be a valid number 0-999" 
    MaximumValue="999" MinimumValue="0"></asp:RangeValidator> 

怎麼可以這樣歸類爲有效範圍。 1.2.1不是有效數字...

+0

我覺得widget使用'string'作爲數據類型。嘗試在標籤中添加Type =「Double」或「Type =」Int「」。 –

+0

當然是。這取決於當前的文化。這是121.0:'double.Parse(「1.2.1」,new CultureInfo(「de-DE」));'。所以如果你現在的文化使用點作爲組分隔符,它是一個有效的數字。 –

回答

2

默認情況下,如果沒有指定Type,我認爲它在使用比較之前使用String作爲默認轉換類型。

您控制更改爲以下:

<asp:RangeValidator ID="RangeValidator8" runat="server" ControlToValidate="TextBoxSAPPlannedHrs" 
    Display="None" ErrorMessage="Must be a valid number 0-999" MaximumValue="999" 
    MinimumValue="0" Type="Integer"></asp:RangeValidator> 

這將導致輸入轉換爲指定(Integer)做比較之前的類型。如果轉換失敗,驗證將失敗。

參見MSDN

值被隱式轉換爲指定的數據類型 之前做出比較。如果數據轉換失敗,數據驗證 失敗。

+0

完美的謝謝。 – totalitarian

相關問題