-
1 任务一 完成...
-
2 验证控件汇总
-
3 常用正则表达式汇总
任务一 完成注册界面的设计
对于开发人员来说,验证是用户在Web表单中输入是否有效得重要任务之一。因为在网上提供信息时,用户的行为是无法预测的,因此必须采取额外的预防措施,尽量保证用户提供的数据是正确的,或是强迫用户一定要输入数据。例如,信用卡号和身份证号输入有效和无效的问题。
【任务要点】
常用验证服务器控件的使用
【案例1】制作提交内容必填的注册页面
某网页要求学生提交学号和专业,要求两项内容必填。若用户没有在文本框中输入学号或没有通过下拉列表框选择专业,则显示出错提示,显示图1-1所示的Web页面,程序正常运行时显示图1-2所示的结果。


【具体步骤】
1.设计Web页面
新建一个ASP.NET网站,向页面中添加必要的控件说明文字,添加一个按钮控件Button1;一个文本框控件TextBox1;一个下拉列表框控件DropDownList1和两个必须项验证控件RequiredFieldValidator1、RequiredFieldValidator2,注意将验证控件放置在被验证控件的右侧。
2.设置对象属性
Web页面中各控件的初始属性设置,见表1-1。
设置RequiredFieldValidator控件的ControlToValidate属性时,可在选中控件后单击ControlToValidate属性栏后面的下箭头按钮,在弹出的列表中显示有当前页面中所有控件的名称,选择需要的一个即可。
3.编写事件代码
Web页面加载时执行的事件过程代码如下:
protected void Page_Load(object sender,EventArgs e)
{
dropSpec.Items.Add("--请选择专业--"); //填充专业下拉列表框中的选项
dropSpec.Items.Add("网络技术");
dropSpec.Items.Add("软件工程");
dropSpec.Items.Add("多媒体应用");
dropSpec.Items.Add("计算机维修");
this.Title="必须项验证控件应用示例"; //设置页面标题
}
单击【提交】按钮时执行的事件过程代码如下:
protected void btnOK_Click(object sender,EventArgs e)
{
//将用户的选择显示到标签控件中
lblResult.Text="你的学号是:"+txtNum.Text+"<br>"+"你的专业是:"+dropSpec.Text;
}
【案例二】利用比较验证控件来制作注册页面
设计一个模拟的用户注册页面,要求使用比较验证控件(CompareValidator)对用户输入密码和确认密码的一致性、日期数据格式的正确性进行比较验证,使用必须项验证控件(RequiredFieldValidator)设置用户名及密码为必填字段。程序运行结果如图1-3和图1-4所示。

【具体步骤】
1.设计Web页面
新建一个ASP.NET网站,切换到设计视图。向由系统自动创建的Default.aspx页面中添加一个用于布局的HTML表格,适当调整表格的行列数;向表格中添加必要的控件说明文字;添加四个用于接收用户输入数据的文本框TextBox1~TextBox4;两个按钮控件Button1、Button2;一个用于显示通过验证信息的标签控件Label1;添加两个必须项验证控件RequiredFieldValidator1和RequiredFieldValidator2,两个比较验证控件CompareValidator1、CompareValidator2,注意将必须项验证控件分别放置在用户名栏和密码栏的右侧单元格,将比较验证控件分别放置在确认密码和出生日期栏的右侧单元格;适当调整各控件的大小及位置。
2.设置对象属性
各控件的初始属性设置见表1-2。


3.编写事件代码
protected void Page_Load(object sender,EventArgs e)
{
this.Title="CompareValidator控件应用示例";
txtUsername.Focus(); //页面加载时,用户名文本框得到焦点
lblPass.Text=""; //清除通过验证标签中的文本
}
protected void btnOK_Click(object sender,EventArgs e)
{
lblPass.Text="本页已通过验证!";//通过验证后在标签中显示的信息
}
【案例三】利用范围验证控件来制作数值录入页面
使用RangeValidator控件验证用户输入学生成绩的数值范围,用户输入数据被验证通过时页面中显示如图1-5所示的结果。若用户没有输入学号或输入了不合逻辑的成绩值,则显示如图1-6所示的出错提示信息。


【具体步骤】
1.设计Web页面
新建一个ASP.NET网站,如图1-7所示,向页面中添加必要的控件说明文字,两个文本框控件TextBox1、TextBox2;一个按钮控件Button1。在用于输入学生学号的文本框后面添加一个必须项验证控件RequiredFieldValidator1,在用于输入学生成绩的文本框后面添加一个范围验证控件RangeValidator1。
2.设置对象属性
各控件的初始属性设置见表1-3。

3.编写事件代码
页面装入时执行的事件过程代码如下:
protected void Page_Load(object sender,EventArgs e)
{
this.Title="范围验证控件应用示例";
txtNum.Focus();
lblMsg.Text="";
}
单击【提交】按钮时执行的事件代码如下:
protected void btnOK_Click(object sender,EventArgs e)
{
lblMsg.Text="姓名:"+txtNum.Text+" "+"成绩:"+
txtScore.Text;
}
【案例四】制作用户不能含有汉字、密码为6~12位及对邮箱格式进行验证的注册页面。
设计一个用户注册数据提交页面,要求程序能使用验证控件限制用户名不能为空、用户名中不能含有汉字、密码长度为6-12位及邮箱地址格式正确。



【具体步骤】
1.设计Web页面
新建一个ASP.NET网站,向由系统自动产生的默认页面中添加一个HTML表格,参照图1-8适当调整HTML表格的行列数及行高、列宽。向HTML表格中添加需要的控件说明文字,向页面中添加三个文本框控件TextBox1~TextBox3;添加一个按钮控件Button1和一个用于输出验证是否通过信息的标签控件Label1;分别在用户名文本框和密码文本框的右侧各添加一个自定义验证控件CustomValidator1、CustomValidator2;在电子邮件文本框右侧添加一个正则表达式验证控RegularExpressionValidator1;适当调整各控件的大小和位置。

2.设置对象属性
各控件的初始属性设置见表1-4。

3.编写事件代码





如果运行时遇到这样的问题(WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping),你可以参考https://blog.csdn.net/ayang1986/article/details/45042909
【背景知识】
数据验证机制介绍
数据验证服务器控件可以提供易用但功能强大的方法检查输入窗体中的错误,并在必要时向用户显示消息。
验证控件像其他服务器控件一样添加到Web窗体页。有不同的控件用于特定的验证类型,如范围检查或模式匹配,以及确保用户不跳过输入字段的RequiredFieldValidator等。可以将多个验证控件附加到一个输入控件。例如,可以既指定需要输入,又指定输入必须包含特定范围的值。
表1-5列出了所有的验证控件。接下来将分别详细介绍这些控件的使用方法。

在处理用户的输入时(如提交窗体时),Web窗体页框架将用户的输入传递给关联的验证控件。验证控件测试用户的输入,并设置属性以指示输入是否通过了验证测试。处理完所有的验证控件后,将设置页上的IsValid属性。如果有任何控件显示验证检查失败,则整页设置为无效。
如果验证控件有错误,错误信息可由该验证控件显示在页中,或者显示在页上其他地方的ValidationSummary控件中。当页的IsValid属性为False时,显示ValidationSummary控件。它轮询页上的每个验证控件,并聚合每个控件公开的文本消息。可以验证的Web服务器控件见表1-6。












