2014-07-03 40 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

相关问题