第四篇:使用Visual Studio 2008实现用户注册页面

本系列目录 

本节主要内容:数据验证控件的使用。

从我们第1节创建的模板创建一个新的web页面,对页面进行布局,如图1.


1

代码:

Code

Code

   

双击注册按钮生成onclick事件。编写代码完成保存操作。

Code

   

利用C#3.0初始化器初始化对象u。利用代码db.Users.InsertOnSubmit(u);u插入集合中。再使用db.SubmitChanges();将集合的变更提交到服务器。

 

下面开始本节的主题,数据验证。我们这里有许多数据需要验证。

1、 用户名:

a)         字母az(不区分大小写)数字09减号下划线组成

b)         只能以数字字母开头和结尾,例如:beijing.2008

c)             用户名长度为418个字符

d)             数据库中不能有重复的用户名。

e)             必填

2、 登陆密码:

a)         密码长度616

b)         重复密码要与首次输入的相同

c)         必填

3、 出生日期

a)         必填

b)         必须在1900~2008之间

4、 性别

a)         必填

5、 邮箱

a)         必填

b)         需要符合XXX@XX.XXX的规则

再看下.net提供的数据验证控件,如图


2
 

.net提供我们6个控件,按照顺序它们在MSDN分别这样描述

1、 RequiredFieldValidator计算输入控件的值以确保用户输入值。

2、 RangeValidator 计算输入控件的值,以确定该值是否在指定的上限与下限之间。

3、 RegularExpressionValidator 计算输入控件的值,以确定该值是否与某个正则表达式所定义的模式相匹配。

4、 CompareValidator将输入控件的值同常数值或其他输入控件的值相比较,以确定这两个值是否与由比较运算符(小于、等于、大于等等)指定的关系相匹配。

5、CustomValidator计算输入控件的值以确定它是否通过自定义的验证逻辑。

6、 ValidationSummary显示 Web 页上所有验证错误的列表。

前五个控件都是通过计算输入控件的值来判断是否符合我们设计的逻辑的。他们有一些公共的常用属性

1、 ErrorMessage:错误提示信息

2、 Display用于指定验证控件中错误信息的显示方式,设置这个属性一般用于我们的页面布局。

None

验证消息从不内联显示。

Static

在页面布局中分配用于显示验证消息的空间。

Dynamic

如果验证失败,将用于显示验证消息的空间动态添加到页面。

Static也就是该控件为被激发的时候也会占据位置,Dynamic则相反。None则表示从不显示该验证控件,一般是与ValidationSummary控件联合使用。

3、 ControlToValidator获取或设置要验证的控件的 ID

4、 SetFocusOnError:获取或设置一个值,该值指示在验证失败时是否将焦点设置到ControlToValidator属性指定的控件上。

开始设置页面:

1、 RequiredFieldValidatort拖动到必须输入的控件后面的TD中,并设置ControlToValidator属性与待验证控件的ID一致。将SetFocusOnError设置成true,设置ErrorMessage属性。Display设置为Dynamic

2、 RegularExpressionValidator拖动到TextBoxUserName后面,除设置RequiredFieldValidatort设置的那几个属性以外再设置ValidationExpression 设置为 ^[a-zA-Z0-9"-".]{4,14}$ 。这个属性是用来设置用于验证的正则表达式的。^[a-zA-Z0-9"-".]表示允许的字符为字母数字与连接线‘-’,{4,14}表示字符数的范围。

同样的方式设置密码与重复密码的RegularExpressionValidator控件属性。

3、 在重复密码后添加CompareValidator属性,设置ControlToCompare属性为TextBoxPasswordControlToValidate 属性为TextBoxRePassword

4、 在出生日期后添加RangeValidator并设置其属性。

运行测试下我们的页面,这时除了用户名重复的验证没有做处理外其它的验证都已经在客户端做了数据验证。怎么为用户名重复添加验证呢?

在页面上方添加一个CustomValidator,以汇总所有数据验证控件错误信息。

protected void Button1_Click(object sender, EventArgs e)添加下列代码

Code
 

if (db.Users.Where(user => user.UserName.Trim() == u.UserName.Trim()).Count() > 0)是通过linq来判断数据库中是否已经存在用户名为u.UserName的数据。

this.CustomValidator1.IsValid = false;来通知CustomValidator数据验证没有通过。

Button1_Click的完整代码

最终的HTML代码:
Code

posted @ 2008-01-13 01:53  tianyamoon  阅读(6157)  评论(8编辑  收藏  举报