在ASP.NET网站中,为了让用户输入的数据更加规范和准确,我们需要给编辑和新增界面增加验证控件。ASP.NET 2.0提供了一些内置的验证控件供我们使用,例如RequiredFieldValidator、RegularExpressionValidator、CompareValidator等。下面是给编辑和新增界面增加验证控件的完整攻略:
1. 在ASP.NET 2.0中使用内置验证控件
1.1 RequiredFieldValidator
RequiredFieldValidator用于验证输入框是否为空,如果为空则提示错误信息。例如,我们要在新增用户界面增加用户名、密码和电子邮件的验证:
<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvUserName" runat="server" ControlToValidate="txtUserName" ErrorMessage="用户名不能为空"></asp:RequiredFieldValidator>
<asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvPassword" runat="server" ControlToValidate="txtPassword" ErrorMessage="密码不能为空"></asp:RequiredFieldValidator>
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvEmail" runat="server" ControlToValidate="txtEmail" ErrorMessage="电子邮件不能为空"></asp:RequiredFieldValidator>
1.2 RegularExpressionValidator
RegularExpressionValidator用于验证输入框中输入的值是否符合正则表达式规则。例如,我们要在新增用户界面增加验证电子邮件的正则表达式:
<asp:RegularExpressionValidator ID="revEmail" runat="server" ControlToValidate="txtEmail" ErrorMessage="电子邮件格式不正确" ValidationExpression="^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$"></asp:RegularExpressionValidator>
1.3 CompareValidator
CompareValidator用于验证两个输入框是否输入的值相同。例如,我们要在修改密码界面增加验证新密码和确认密码是否一致:
<asp:TextBox ID="txtNewPassword" runat="server" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvNewPassword" runat="server" ControlToValidate="txtNewPassword" ErrorMessage="新密码不能为空"></asp:RequiredFieldValidator>
<asp:TextBox ID="txtConfirmPassword" runat="server" TextMode="Password"></asp:TextBox>
<asp:CompareValidator ID="cvConfirmPassword" runat="server" ControlToValidate="txtConfirmPassword" ControlToCompare="txtNewPassword" Operator="Equal" ErrorMessage="两次输入密码不一致"></asp:CompareValidator>
2. 使用自定义验证控件
除了使用内置验证控件外,我们还可以创建自定义的验证控件。例如,我们自定义一个验证控件用于验证手机号码是否合法,将其命名为PhoneValidator:
using System;
using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;
namespace CustomControls
{
[ToolboxData("<{0}:PhoneValidator runat=\"server\" ErrorMessage=\"Phone number is not valid.\" />")]
public class PhoneValidator : BaseValidator
{
protected override bool ControlPropertiesValid()
{
Control ctrl = FindControl(ControlToValidate);
return (ctrl != null);
}
protected override bool EvaluateIsValid()
{
string phoneNumber = GetControlValidationValue(ControlToValidate).ToString();
return IsValidPhoneNumber(phoneNumber);
}
private bool IsValidPhoneNumber(string phoneNumber)
{
Regex regex = new Regex(@"^1[3-9]\d{9}$");
return regex.IsMatch(phoneNumber);
}
}
}
使用自定义验证控件的方式与使用内置验证控件类似:
<asp:TextBox ID="txtPhone" runat="server"></asp:TextBox>
<custom:PhoneValidator ID="pvPhone" runat="server" ControlToValidate="txtPhone" ErrorMessage="手机号码格式不正确"></custom:PhoneValidator>
通过上述攻略可以清楚的了解在ASP.NET 2.0中如何给编辑和新增界面增加验证控件,而且在示例中同时演示了新增用户界面、修改密码界面和自定义验证控件的使用方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在ASP.NET 2.0中操作数据之十九:给编辑和新增界面增加验证控件 - Python技术站