VS2005和VS2008自带的验证控件,几乎没有什么不同。唯一改善的地方是VS2008的验证控件的BackColor 、ForeColor和 BorderColor属性的设置比起VS2005来功能更强大。
在这里,我简要介绍了如何使用验证控件。
若要了解更多关于验证控件的使用与扩展,请访问以下网址,这儿有许多非常好的文章。
http://www.codeproject.com/KB/validation/
验证控件用于验证用户输入是否符合要求。有时系统会要求用户输入的数据需遵循一定的格式和规则,如邮政编码、电子邮件地址、电话号码以及年龄必须大于零等,这样才尽可能确保用户输入的数据的正确性和有效性。ASP.NET中验证控件提供了两种方式的验证:服务器端验证和客户端验证。当检测到浏览器允许客户端验证时,验证控件将在客户端进行验证,否则,将只能在服务器端进行验证。进行client-side/server-side检测和验证不需要开发人员进行额外的工作!
下面是用来验证用户输入的控件(Web控件):
|
RequiredFieldValidator
|
检查用户是否输入或选择了任何内容
|
|
CompareValidator
|
将输入控件与一个固定值或另一个输入控件进行比较。例如,它可以用在口令验证字段中。也可以用来比较输入的日期和数字。
|
|
RangeValidator
|
与 CompareValidator 非常相似, 只是它用来检查输入是否在两个值或其它输入控件的值之间。
|
|
RegularExpressionValidator
|
根据规则表达式检查用户输入。该过程允许进行许多种类的检查,可以用于邮政编码和电话号码等的检查。
|
|
CustomValidator
|
允许用户编写自己的代码以加入到验证框架中。
|
多个验证控件可同时用于单个输入控件,以验证不同的标准。例如,要求用户输入他的年龄。您可以使用一个RangeValidator控制,以确保输入的值是在规定的范围和RequiredFieldValidator控件,以确保用户输入一个值到TextBox控件。
如果验证控件验证到用户输入的数据不符合要求,则其属性ErrorMessage的内容将显示在验证控件的位置。其内容还能显示在ValidationSummary控件中。
验证控件基础:
所有的验证控件均继承自基类BaseValidator,所以它们都有一系列相同的属性和方法。
例如:
• ControlToValidate -用于指定验证对象。
• ErrorMessage -这是将用于显示验证总结的错误消息。
• IsValid -布尔值,用于指示验证控制是否有效。
• Display-用于控制错误信息的显示方式。
RequiredFieldValidation控件
首先我们介绍RequiredFieldValidation控件的使用。显而易见,它确保用户输入了值。下面是其使用方式:
|
Core code:
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>*
<asp:RequiredFieldValidator
ID="reqvName" runat="server" ControlToValidate="txtName"
ErrorMessage="The name can not be blank!" Display="static">
</asp:RequiredFieldValidator>
|
在附带的项目ValidatorControlDemo中,页面RequiredFieldValidatorDemo.aspx是其使用实例。
CompareValidator控件
接下来我们看看CompareValidator控件的使用。使用本CompareValidator控件是确认两次输入的密码是否一致。实例如下:
|
Core code:
<asp:Label ID="lblRePassword" runat="server" Text="Re-enter Password:"></asp:Label>
<asp:TextBox ID="txtRePassword" runat="server" Width="126px"></asp:TextBox>*
<asp:CompareValidator ID="cmpvPassword" runat="server"
ControlToCompare="txtRePassword" ControlToValidate="txtPassword"
ErrorMessage="Two password the importation is inconsistent!" Display="Dynamic">
</asp:CompareValidator>
|
在这里,验证我们的两个文本框的内容是否相等的。这个控件中的ControlToCompare属性是CompareValidator控件所特有的,用于指定另一个比较对象。这两个控件的比较类型将由Operator属性指定。Operator属性值可为Equal, GreterThan , LessThanOrEqual等。
ComapareValidator控件的另一个使用方式是同一个值进行比较。例如:
|
Core code:
<asp:Label ID="lblNumber" runat="server" Text="Enter Number:"></asp:Label>
<asp:textbox id="txtNumber" runat="server"/>
<asp:CompareValidator id="reqvNumber" runat="server" ControlToValidate="txtNumber" ValueToCompare="50"
Type="Integer" Operator="GreaterThan"
ErrorMessage="You must enter the a number greater than 50!" Display="Dynamic">
</asp:CompareValidator>
|
在附带的项目ValidatorControlDemo中,页面CompareValidatorDemo.aspx是它们的使用实例。
数据类型可以是:Currency, Double, Date, Integer or String。String为默认的数据类型。
RangeValidator 控件
Range Validator控件是另一个用于检查输入值是否在有效的范围内的验证控制。其是必要的属性是: MaximumValue 、 MinimumValue和Type。例如:
|
Core Code:
<asp:Label ID="lblBirthday" runat="server" Text="Birthbay:"></asp:Label>
<asp:TextBox ID="txtBirthday" runat="server" Width="128px"></asp:TextBox>
<asp:RangeValidator ID="rngvBirthday" runat="server" ControlToValidate="txtBirthday" Type="Date"
ErrorMessage="The birthday must be between 1/1/1990 and 12/13/2010."
MaximumValue="12/13/2010" MinimumValue="1/1/1900" Display="Dynamic">
</asp:RangeValidator>
|
在附带的项目ValidatorControlDemo中,页面RangeValidatorDemo.aspx是其使用实例。
RegularExpressionValidator控件
正则表达式验证控件是ASP.NET 中一个功能强大的验证控件。几乎每个人都会喜欢用正则表达式。其使用方法如下:
|
Core Code:
<asp:Label ID="lblEmail" runat="server" Text="Email:"></asp:Label>
<asp:TextBox ID="txtEmail" runat="server" Width="206px"></asp:TextBox>
<asp:RegularExpressionValidator ID="rexpEmial" runat="server"
ControlToValidate="txtEmail" Display="Dynamic"
ErrorMessage="Email format is not consistent with."
ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*">
</asp:RegularExpressionValidator>
|
在附带的项目ValidatorControlDemo中,页面RegularExpressionValidatorDemo.aspx是其使用实例。
关于正则表达式的语法和常用的正则表达式, 请参考网址:
http://www.cnblogs.com/Caesar/archive/2008/07/30/1256486.html
CustomValidator控件
ASP.NET中关于表单验证的最后一个控件是一个具有很大灵活性的验证控CustomValidator,增加了我们的验证能力。这个自定义验证控件使我们可以写出函数,并通过它验证用户输入值。其用法如下:
|
Core Code:
<asp:Label ID="lblLuckyNumber" runat="server" Text="Your Lucky Number:"></asp:Label>
<asp:TextBox ID="txtLuckyNumber" runat="server" Width="126px"></asp:TextBox>
<asp:CustomValidator ID="custvLuckyNumber" runat="server"
ControlToValidate="txtLuckyNumber" ErrorMessage="Lucky number must be even!"
OnServerValidate="ServerValidation" Display="Dynamic">
</asp:CustomValidator>
|
在附带的项目ValidatorControlDemo中,页面CustomValidatorDemo.aspx是其使用实例。
关于CustomValidator控件更详细的信息, 下面这个网址有更详细的信息:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.customvalidator.aspx
Validation Summary控件
ASP.NET有提供了一个额外的控件ValidationSummary,用于集中显示不符合要求的用户输入消息。其使用方法如下:
|
Core Code:
<asp:ValidationSummary ID="vsumErrors" runat="server"
HeaderText="Errors:" DisplayMode="BulletList"/>
|
在附带的项目ValidatorControlDemo中,页面ValidationSummaryDemo.aspx
是其使用实例。
ValidationSummary控件将收集所有不符合要求的验证控件的Error Messages的值并将其放入一个列表中。该清单显示在网页上或弹出框(通过指定属性ShowMessageBox = “True” )
ValidatorContorlDemo.rar (32.73 kb)