1. RangeValidator概述
在ASP.NET WebForm應用程式中,RangeValidator控制項是範圍驗證控制項。用於檢驗文本框中輸入的值是否在指定的範圍之內(包括最小值和最大值),比較的數據類型有多種,如:數字、日期、字符串等,可以使用Type屬性指定。
下圖是在ASPX頁面上添加的RangeValidator控制項:
RangeValidator控制項可以限制用戶在文本框中輸入指定範圍內的內容,如果輸入的值不在指定的範圍內,則會給出驗證未通過的提示信息。
使用RangeValidator控制項的屬性指定輸入的範圍值。
2. ControlToValidate屬性
在ASP.NET WebForm應用程式的aspx頁面上,使用RangeValidator控制項的ControlToValidate屬性指定範圍驗證控制項要與哪個TextBox控制項綁定在一起,對該TextBox控制項進行範圍值驗證。
如下圖是使用ControlToValidate屬性綁定的文本框:
在上圖中,通過ControlToValidate屬性將RangeValidator範圍驗證控制項與ID為txtName的TextBox控制項綁定在一起。表示要對ID為txtName的文本框進行範圍驗證。
3. MinimumValue屬性
ASP.NET WebForm中的RangeValidator範圍驗證控制項中的MinimumValue屬性用於指定要比較的最小值。
也就是使用MinimumValue屬性指定範圍驗證中的最小值,包括此最小值。
如下圖是指定文本框中能輸入的最小值是整數100:
在上圖中使用MinimumValue="100"指定綁定的文本框中輸入的最小值是100。
4. MaximumValue屬性
ASP.NET WebForm中的RangeValidator範圍驗證控制項中的MaximumValue屬性用於指定要比較的最大值。包括最大值在內。
如下圖指定最大值是800:
通過RangeValidator範圍驗證控制項的MinimumValue屬性和MaximumValue屬性指定了範圍是100-800,包括100和800在內。
ASPX頁面中完整的代碼如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RangeValidator.aspx.cs" Inherits="Yidosoft.Edu.WebForm.RangeValidator" %><!DOCTYPE html> <html><head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title></head><body> <form id="form1" runat="server"> <div> <asp:TextBox ID="txtName" runat="server"></asp:TextBox> <asp:RangeValidator ID="RangeValidator1" ControlToValidate="txtName" runat="server" MinimumValue="100" MaximumValue="800" ErrorMessage="請輸入100-800之間的整數"></asp:RangeValidator> </div> <div> <asp:Button ID="btnOK" runat="server" Text="提交" /> </div> </form></body></html>
在此代碼中指定ErrorMessage屬性的值是:請輸入100-800之間的整數。表示驗證未通過時給出的提示信息。
在Visual Studio 2019中,按F5鍵運行一下該代碼,效果如下:
在上圖文本框中輸入的值是99,未在100-800範圍之內,所以給出了未驗證通過的提示信息。
現在輸入一個正確的整數,如下圖所示:
當在上圖中輸入180時,通過了驗證,並未出現未通過時的提示信息。
5. Type屬性
RangeValidator範圍驗證控制項的Type屬性與CompareValidator比較驗證控制項中的Type屬性的含義是一樣的。都是用來指定驗證的數據類型。
在上圖中,指定文本框中輸入的值類型是雙精度Double類型,不能是別的類型。
注意:在使用RangeValidator進行範圍校驗時,最好使用Type屬性指定要比較的數據類型,這樣比較精準一些。
再運行一下結果,如下圖所示:
在上圖中,當在文本框中輸入小數400.20時,單擊「提交」按鈕,頁面刷新了一下,表示驗證通過了。
那如果我們在文本框中輸入字符串,能驗證通過嗎?
在上圖中,我們在文本框中輸入了「小強」,這是一個字符串類型,不是Type指定的Double雙精度類型,所以未驗證通過,給出了未驗證通過的提示信息。
ASP.NET WebForm應用程式中,RangeValidator範圍驗證控制項中的範圍值要與Type屬性指定的類型一致,否則會造成用戶無法正確輸入,影響了應用程式的使用。