日期:2008-12-31 浏览次数:20410 次
第四天
学习目的:掌握WEB控件的使用(二)
首先我要说明,我这十天教程也只是一个让大家对ASP.NET有一个认识而已,我也跳过了很多东西。网上有很多人在责骂我写的教程,认为十天什么都学不会,看了我的教程还是什么都不会,我想他们或许是过高估计了我的教程。外面有很多书,关于ASP和ASP.NET的,我就是看外面的书学会的。我所要做的就是希望大家能看了我的教程以后觉得ASP和ASP.NET不是学不会的东西然后有信心去学会它。我想学习还是靠自己的,外面每一本书也有自己写的不周到的地方,关键还需要自己的实践加上探索。
首先来说一下表单的验证控件,以前我们做表单验证,如果是客户端的JavaScript,不能做到美观统一,而且还可以通过直接在浏览器起教表单来屏蔽;如果我们做服务器端验证,又会发现让检验结果在前台反映也是很麻烦的事情。现在好了,ASP.NET提供的很多检验控件让我们不需要考虑是客户端检验还是服务器端检验,让我们不需要考虑是怎么输出检验结果。
看一下检验表单控件是不是填写了的检验控件先:
<ASP:textbox id="username" runat="server" CSSclass="textbox"/>
<ASP:requiredfieldvalidator controltovalidate="username" display="dynamic" forecolor="#ff0000" font-name="宋体" font-size="9pt" text="请填写" runat="server"/>
controltovalidate就是你想检验的控件的ID;默认情况下不显示错误消息,地方也会被保留,如果使用了display="dynamic" 那么不显示错误消息的地方不会被空出; forecolor="#ff0000" font-name="宋体" font-size="9pt" 就是设定错误消息字体的颜色,字体,大小的;text="请填写" 就是当没有填写内容时候显示的错误消息;别忘记最后的runat="server"。现在这个检验控件是放在了textbox的后面,那么错误消息也在textbox后面显示,也可以放在其他地方。
再看一下比较表单控件的数据与另外一个数据的检验控件:
<ASP:textbox id="password1" runat="server" textmode="password" CSSclass="textbox"/>
<ASP:requiredfieldvalidator controltovalidate="password1" display="dynamic" forecolor="#ff0000" font-name="宋体" font-size="9pt" text="请填写" runat="server"/>
这里是第一个需要用户填写的密码框
我们经常会再设立一个密码框让用户再填写一次:
<ASP:textbox id="password2" runat="server" textmode="password" CSSclass="textbox"/>
<ASP:requiredfieldvalidator controltovalidate="password2" display="dynamic" forecolor="#ff0000" font-name="宋体" font-size="9pt" text="请填写" runat="server"/>
<ASP:comparevalidator controltovalidate="password2" controltocompare="password1" display="dynamic" operator="equal" forecolor="#ff0000" font-name="宋体" font-size="9pt" text="确认失败" runat="server"/>
controltocompare="password1" 就是需要比较的控件;operator="equal" 就是设定比较操作是:是否相等(还有NotEqual:不相等,LessThan:少于,GreaterThan:大于,当不符合这个比较操作的时候显示错误消息)。
以前说到BUTTON控件CausesValidation=true/false来设置按钮提交的表单是不是被检验也就是这里的几个检验控件,如果CausesValidation=true的话按下按钮就会首先检测是不是都通过了检验控件的检验。
下面再说两点:
一、每一个可以显示的控件都有是不是显示的属性,比如username.Visible=false;就是隐藏了前面的username控件;还有就是如果要对控件应用CSS的话就这么写:CSSclass="",而不是以前HTML中的class=""。
二、所有WEB控件都要包含在<form runat="server"></form>中,否则就会出错。
今天就到此结束,请继续往后面看,下次开始就要说ADO.NET了。