4.3 范围验证控件:RangeValidator

RangeValidator验证控件可以用来检查用户输入的数据是否在指定的验证范围之内。它有三个特定的属性:Type、MinimumValue和MaximumValue属性。

其中,Type属性用于指定要比较的值的数据类型,如表4-3所示。在执行任何比较之前,先将要比较的值转换为该数据类型;MinimumValue和MaximumValue属性分别指定有效验证范围的最小值和最大值。值得注意的是,如果MaximumValue或MinimumValue属性指定的值无法转换为Type属性指定的数据类型,则RangeValidator验证控件将引发异常。

figure_0136_0098

注意 在使用RangeValidator验证控件验证时,如果输入控件为空,则不调用任何验证函数且验证成功。因此,它一般和RequiredFieldValidator控件配合使用,以防止用户跳过某个输入控件。

下面的代码示例演示如何使用RangeValidator验证控件验证在文本框中输入的值是否介于1和20之间,如代码清单4-2所示。

代码清单4-2 TestRangeValidator.aspx


<form id="form1"runat="server">

<div>

请在文本框里面输入数字1~20

<br/>

<asp:TextBox ID="TextBox1"runat="server"/>

<br/>

<asp:RequiredFieldValidator

ID="RequiredFieldValidator1"

ControlToValidate="TextBox1"

Text="文本输入不能够为空"

runat="server"/>

<br/>

<asp:RangeValidator

ID="RangeValidator1"

ControlToValidate="TextBox1"

MinimumValue="1"

MaximumValue="20"

Type="Integer"Text="输入的数字必须是1~20"

runat="server"/>

<br/>

<asp:Button ID="Button1"Text="数据提交"runat="server"/>

</div>

</form>


在代码清单4-2中,分别使用两个验证控件RequiredFieldValidator1和RangeValidator1来对TextBox1文本框输入的数据进行验证。如果TextBox1文本框输入的数据为空,将触发非空验证控件RequiredFieldValidator1。运行结果如图4-4所示。

如果TextBox1文本框输入的数据不在1~20的范围内,将触发范围验证控件RangeValidator1。运行结果如图4-5所示。

figure_0137_0099

图 4-4 TestRangeValidator.aspx运行结果1

figure_0137_0100

图 4-5 TestRangeValidator.aspx运行结果2