ASP.net网站建设项目实战用户控件是一种自定义的组合控件封装独立的功能(显示列表等)像页面一样方便的编辑,像控件一样使用拖拽方式使用后缀名为.ascx作用页面代码的重用母版页提供整个页面级的风格控制和代码重用;用户控件提供小范围的风格控制和更灵活的代码重用1.用户控件介绍ASP.net网站建设项目实战搜狐首页搜狐新闻页用户控件可以实现页面代码的重用ASP.net网站建设项目实战2.创建用户控件演示示例:登录的用户控件创建用户控件将用户登录的部分放入用户控件新建用户控件在用户控件上放置相关的Web控件编写用户控件的后台代码在其他页面使用用户控件ASP.net网站建设项目实战Control指令后台代码%@ControlLanguage=C#AutoEventWireup=trueCodeFile=UserLoginControl.ascx.csInherits=_Controls_UserLoginControl%publicpartialclass_Controls_UserLoginControl:System.Web.UI.UserControl{protectedvoidPage_Load(objectsender,EventArgse)......}ASP.net网站建设项目实战3.用户控件的注册和使用使用用户控件页面中注册和使用%@RegisterSrc=../_Controls/UserLoginControl.ascxTagName=UserLoginControlTagPrefix=uc1%……uc1:UserLoginControlID=ulcLoginrunat=server/在页面中注册控件将用户控件放入页面指定位置即可ASP.net网站建设项目实战4.使用用户控件的注意事项注意事项用户控件中可以使用其他用户控件可以像页面一样,在用户控件中使用其他用户控件但用户控件中不可包含自己,也不能发生任何循环嵌套用户控件1用户控件2用户控件1ASP.net网站建设项目实战用户控件与Page:用户控件与页面的区别?后缀名:用户控件以.ascx为后缀名,而页面后缀名是.aspx指令:用户控件为@Control,页面是@Page继承:用户控件继承自System.Web.UI.UserControl,而页面继承自System.Web.UI.Page用户控件不可直接访问,页面可直接访问页面:容器;用户控件:内容。ASP.net网站建设项目实战验证控件:ASP.net网站建设项目实战验证控件:有效性验证用户注册时,输入了不合标准的信息,怎么办?后台手写验证代码使用javascript脚本进行验证ASP.NET提供了验证控件轻松实现用户输入的验证,且与用户浏览器无关由在客户端或服务器中运行的验证代码执行多种验证控件,验证数据更加简单方便ASP.net网站建设项目实战验证控件的层次结构BaseValidator基础验证类RequiredFieldValidatorCompareValidatorRegularExpressionValidatorRangeValidatorCustomValidatorBaseCompareValidatorLabelWebControlValidationSummaryASP.net网站建设项目实战(1)RequiredFieldValidator控件RequiredFieldValidator控件可以确保用户提供的输入为非空,该控件的使用简单,常常和其他验证控件一起实现用户的验证。表5-1列出了RequiredFieldValidator控件的常用属性。ASP.net网站建设项目实战(2)RangeValidator控件RangeValidator控件用于范围检查,如进行数值范围的检查、日期等特殊格式的检查等。表52列出了RangeValidator控件的常用属性。ASP.net网站建设项目实战(3)RegularExpressionValidator控件RegularExpressionValidator控件通过设置正则表达式匹配一串字符。例如,身份证的验证、电子邮件地址的验证、邮政编码验证、网址验证等,这些验证都可以通过编写相应的正则表达式判断。ASP.NET内置了一些常用的表达式,选择RegularExpressionValidator的RegularExpression属性就可以打开正则表达式编辑器,然后选择需要的正则表达式即可。ASP.net网站建设项目实战ASP.net网站建设项目实战电子邮件怎么验证?没有大小可比没有范围之分电子邮件的规则是:必须包含一个并且只有一个符号“@”第一个字符不得是“@”或者“.”不允许出现“@.”或者.@结尾不得是字符“@”或者“.”ASP.net网站建设项目实战(4)CompareValidator控件在用户注册时一般需要用户输入两次密码,且两次密码的输入必须一致,这样能防止用户密码输入错误,此外在在线购物时检查付款金额是否大于零等一些例子中都需要CompareValidator控件进行验证。表5-3列出了CompareValidator控件的一些常用属性。ControlToValidate要验证控件IDControlToCompare要比较控件IDType比较类型Operater比较运算符ValueToConpare用于比较的值ASP.net网站建设项目实战(5)CustomValidator控件当以上4种验证控件无法满足验证要求的时候,可以使用CustomValidator控件自己编写验证代码。例如,在注册电子邮箱时需要检查用户输入的邮箱名字是否已经被注册,如果已经被注册则给出相应的提示信息。CustomValidator控件支持客户端脚本验证和服务器端验证两种方式,可以同时使用客户端和服务器端两种方式进行联合验证,确保输入数据的正确性。表5-4列出了CustomValidator控件的常用属性。ASP.net网站建设项目实战(6)ValidatorSummary控件ValidationSummary控件不用于窗体输入信息的验证,而是汇总验证控件所有的错误信息。如果不使用它,所有的验证错误(ErrorMessage)将直接在验证控件的位置显示,这将不利于版面的控制。ValidationSummary控件可以将错误信息归纳在一个简单的列表中,如显示在页面的一个段落或者一个弹出的对话框中。表5-5列出了ValidationSummary控件的常用属性。ASP.net网站建设项目实战验证码控件:(第三方控件)验证码不但能够防止用户暴力破解用户密码,同时能够有效保护站点的安全。验证码是一个图片,包含随机产生的文字。可以通过程序绘制页面上的内容和干扰像素(又称噪点),然后使用一种状态保持方式,在页面上对比用户输入的内容和自动生成的内容,这样就实现了验证码的效果。根据不同的状态保持方式,验证方式分为Session方式和Cookie方式两种。ASP.net网站建设项目实战百度注册的页面为什么需要验证码?防止不法分子通过穷举方式破解密码、盗取钱财。防止竞争对手通过大量注册,破坏网站的稳定。ASP.net网站建设项目实战在ASP.NET中提供了验证码控件Webvalidates来实现验证码效果,省去了烦琐的用编码绘图的方法,给应用带来了便捷。验证码控件的使用步骤如下。(1)将验证码控件显示到工具箱。使用的验证码控件封装在动态链接库中,该动态链接库文件是WebValidates.dll。在VisualStudio中,执行“工具”→“选择工具箱项”命令,如图5-11所示。在弹出的“选择工具箱项”对话框(如图5-12所示)中,切换到.NETFramework选项卡,单击“浏览”按钮,在弹出的“打开”对话框中选择WebValidates.dll文件所在的目录,如图5-13所示。ASP.net网站建设项目实战ASP.net网站建设项目实战ASP.net网站建设项目实战(2)将控件拖放到页面相应位置。(3)页面初始化时生成验证码。若验证码控件ID为snCode,则生成验证码的代码如下。snCode.Create();//创建新验证码(4)判断用户输入正确与否。若用于输入验证码的文本框ID为txtCode,则判断输入正确与否的语句如下。snCode.CheckSN(txtCode.Text.Trim())//返回bool型的值