版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章
Web窗体和常用服务器控件
ASP.NET服务器控件的基本概念
ASP.NET中内部常用控件的使用方法
ASP.NET中验证控件的使用方法5.1ASP.NET网站的逻辑结构5.1.1概述5.1.2ASP.NET网站的组成一个网站通常由多种文件组成,主要包括以下5个部分。 (1)一个在IIS信息服务器中的虚拟目录。这个虚拟目录被配置为应用程序的根目录。 (2)一个或多个带.aspx扩展名的网页文件,还允许放入若干.htm、.asp网页或其他类型的文件。 (3)零个或多个Web.config配置文件。 (4)一个以Global.asax命名的全局文件。 (5)几个专用的共享目录。1.虚拟目录虚拟目录又称为目录的“别名”,是以服务器作为根的目录(不同于以磁盘为根的物理目录)。默认安装时,IIS服务器被安装在“[硬盘名]:\Inetpub\wwwroot”下,该目录对应的URL(统一资源定位符)是http://localhost或者http://服务器域名。1.虚拟目录(1)直接将网站的根目录放在虚拟目录下面。(2)将应用程序目录放到一个物理目录下(例如D:\site),同时用一个虚拟目录指向该物理目录。此时客户只需要通过虚拟目录的URL来访问。客户并不需要知道对应的物理目录在哪里。2.网页文件 网页(或称窗体页)是应用程序运行的主体。在ASP.NET中的基本网页是以.aspx作为后缀的网页。除此之外,应用程序中还可以包括以.htm或.asp为后缀的网页(或其他类型的文件)。2.网页文件 当服务器打开后缀为.htm的网页时,服务器将不经过任何处理就直接送往浏览器,由浏览器下载并解释执行
而打开后缀为.aspx的网页时,则需先创建服务器控件,运行服务器端的代码,然后再将结果转换成HTML的代码形式送往浏览器。2.网页文件
不是每次都要在服务器端重新解读和运行,对于那些曾经请求过而又没有改变的ASPX网页,服务器会直接从缓冲区中取出结果而不需要再次运行。3.网站配置文件(1)Web.config配置文件的作用
Web.config是一个基于XML的配置文件,因此人和机器都能够识别。该文件的作用是对应用程序进行配置,例如规定客户的认证方法、基于角色的安全技术的策略、数据绑定的方法、远程处理对象等。<?xmlversion="1.0"encoding="utf-8"?><configuration><system.web><elementName1><childElementName1
attributeName1=valueattributeNameN=value/></elementName1>
<elementName2
attributeName1=valueattributeNameN=value/>…<elementNameNattributeName1=valueattributeNameN=value/></System.Web></configuration>4.网站全局文件
Global.asax文件(又称为ASP.NET应用程序文件)是一个可选的文件,一个应用程序最多只能建立一个Global.asax文件,而且必须放在应用程序的根目录下。5.共享目录(1)App_Code目录 App_Code是一个共享的目录。如果将某种文件(例如类文件)放在本目录下时,该文件就会自动成为应用程序中各个网页的共享文件。5.共享目录(2)App_Data目录 如果将数据库放在App_Data目录下时,这些数据库将自动成为网站中各网页共享的资源。5.共享目录(3)App_Themes目录 App_Themes是一个用于放置主题的目录,在主题目录中将放入皮肤文件、样式文件和相关的图像文件,用来确定网站中各网页的显示风格。5.1.3ASP.NET页面在WebForm中所有的控件都被看成是对象,每个对象都有自己的属性、方法和事件数据类型也看成对象,每种数据类型都有自己特有的属性和方法。WEBFORM的后缀名是ASPX。当一个浏览器第一次请求一个ASPX文件时,WEBFORM页面将被CLR(CommonLanguageRuntime)编译器编译。此后,当再有用户访问此页面的时候,由于ASPX页面已经被编译过5.1.3ASP.NET页面HTML文件都保存为ASPX文件后缀,这样可以加快页面的访问效率!为了简化程序员的工作,ASPX页面不需要手工编译,而是在页面被调用的时候,由CLR自行决定是否编译。一般来说,下面两种情况下,ASPX会被重新编译:
ASPX页面第一次被浏览器请求;
ASPX被改写.5.1.3ASP.NET页面下面来看一个ASP.NET的页面,通过这个页面首先让读者对于ASP.NET页面有一个初步的认识和了解。其源代码如下:
5.1.3ASP.NET页面
<HTML><HEAD> <scriptLanguage="c#"runat="server">
privatevoidPage_Load(objectsender,System.EventArgse)
{
lbdisp.Text="改变文字,请单击按钮";
} privatevoidTextButton_Click(objectsender,System.EventArgse)
{
lbdisp.Text="测试成功"; } </script></HEAD><body> <formid="Form1"method="post"runat="server"> <asp:Labelid="lbdisp"runat="server"Width="140px">Label</asp:Label><asp:Buttonid="TextButton"runat="server"Width="176px"Text="测试按钮"onclick="TextButton_Click"></asp:Button> </form></body></HTML>1.Web窗体页处理.和所有的服务器端进程一样,当ASPX页面被客户端请求时,页面的服务器端代码被执行,执行结果被送回到浏览器端。Web处理的某些特性应用到Web窗体页。5.1.4ASP.NET页面处理过程Web窗体页中工作的划分。浏览器向用户展示一个窗体,用户与该窗体进行交互,这导致该窗体回发到服务器将该窗体发送到服务器、进行处理、然后返回到浏览器。这一事件序列称作“往返处理”。(1)页面的往返处理.1.用户输入完毕订单所有项目并点击“提交”按钮2.将该页发送给服务器。3.服务器进程检查该订单,执行库存查找,可能执行在业务逻辑中定义的某些操作,这时可能发现一些错误,这时服务器端进程修改用户提交页以指示一个错误,然后将该页返回到用户的浏览器以继续。
(1)页面的往返处理(举例说明)Web窗体处理中的各个阶段1.ASP.NET页框架初始化引发该页的Page_Init事件,并还原该页和控件视图状态。ASP.NET页框架还原控件属性和回发数据。Web窗体处理中的各个阶段2.用户代码初始化引发页的Page_Load事件。读取和还原以前存储的值:使用Page.IsPostBack属性,检查是否是第一次处理该页。如果是第一次处理该页,则执行初始数据绑定。否则,还原控件值。读取和更新控件属性。。Web窗体处理中的各个阶段3.验证调用任何验证程序Web服务器控件的Validate方法来执行该控件的指定验证。
Web窗体处理中的各个阶段
4.事件处理如果已调用该页来响应窗体事件,则在此阶段期间调用该页中的相应事件处理程序。Web窗体处理中的各个阶段执行特定于应用程序的处理:处理所引发的特定事件。如果该页包含ASP.NET服务器控件验证类型,则检查该页和各个验证控件的IsValid属性。
手动保存用户正自行维护的页变量的状态。检查该页或各个验证控件的IsValid属性。手动保存动态添加到该页的控件的状态。Web窗体处理中的各个阶段5.清除调用Page_Unload事件,因为该页已完成呈现并准备好被放弃。执行最后的清除工作:关闭文件、关闭数据库连接、放弃对象。当ASP.NET页被打开或重建时,会引发Page_Load事件。Page_Load事件主要用于用户代码初始化、读取和还原以前存储的值,并能使用Page.IsPostBack属性检查是否是第一次处理该页。如果是第一次处理该页,则可执行初始数据绑定;否则,还原控件值,读取和更新控件属性。
2.Page_Load事件.<scriptLanguage="C#"runat="server"> privatevoidPage_Load(objectsender,System.EventArgse){ lbdisp.Text="改变文字,请单击按钮"; }</script><HTML><HEAD><scriptLanguage="c#"runat="server">privatevoidPage_Load(objectsender,System.EventArgse){
if(!Page.IsPostBack){lbdisp.Text="ASP.NET页面第一次打开所显示的文字";}else{lbdisp.Text="今后所显示的文字";}}</script></HEAD><body> <formid="Form1"method="post"runat="server"> <asp:Labelid="lbdisp"runat="server"Width="167px"></asp:Label> <asp:Buttonid="btsubmit"runat="server"Text="Button"Width="134px"></asp:Button> </form></body></HTML>
Web服务器控件:这些控件比HTML服务器控件具有更多内置功能。Web服务器控件与HTML服务器控件相比更为抽象,因为其对象模型不一定反映HTML语法。
5.1.5服务器控件种类验证控件:包含逻辑以允许测试用户输入的控件。将一个验证控件附加到输入控件,测试用户对该输入控件输入的内容。验证控件可用于检查必填字段,对照字符的特定值或模式进行测试,验证某个值是否在限定范围之内以及其他目的。
5.1.5服务器控件种类用户控件:作为Web窗体页创建的控件。Web窗体用户控件可以嵌入到其他Web窗体页中,这是创建菜单、工具栏和其他可重用元素的捷径。5.1.5服务器控件种类5.2Web常用服务器控件5.2.1文本类控件1.标签控件Label 用来在Web页面上显示文字,用户不能直接对这些文本进行编辑。5.2.1文本类控件标签控件的使用语法如下:<ASP:Label id="控件的惟一标识" Runat="Server" Text="所要显示的文字"/>或<ASP:Labelid="控件的惟一标识"Runat="Server"> 所要显示的文字</ASP:Label>表5-5TextBox控件的属性说明<html>
<head></head>
<body>
<formrunat="server">
这是一般文本框:
<asp:TextBoxId="T1"Runat="Server"/><br>
这是密码文本框:
<asp:TextBoxId="T2"TextMode="Password"Runat="Server"/><br>
这是多行文本框:
<asp:TextBoxId="T3"TextMode="Multiline"Rows="3"Runat="Server"/>
</form>
</body></html><HTML><HEAD><title>例5-2</title> <scriptLanguage="c#"runat="server">
privatevoidPage_Load(objectsender,System.EventArgse){ lbdisp.Text="初始化文字"; } privatevoidT1_Changed(objectsender,System.EventArgse){ lbdisp.Text="Onchange事件被触发。"; } </script></HEAD><body> <formid="Form1"method="post"runat="server">
<ASP:TextboxId="T1"AutoPostBack="True"OnTextChanged="T1_Changed"Runat="server"/> <ASP:LabelId="lbdisp"Runat="Server"/> </form></body></HTML>1.Button控件
Button按钮控件可以分为提交按钮控件和命令按钮控件。
提交按钮控件只是将web页面回送到服务器,默认情况下,Button控件为提交按钮控件;
而命令按钮控件一般包含与控件相关联的命令,用于处理控件命令事件。5.2.2按钮类控件<ASP:Button Id="被程序代码所控制的名称" Runat="Server" Text="按钮上的文字" CssClass="控件呈现的样式文件名" CausesValidation="true|false" OnClick="事件程序名" PostBackUrl="发送到下页的URL"/>1.Button控件
voidButton1_Click(objectsender,EventArgse) { Label1.Text="谢谢您访问我们的站点!"; } <asp:buttonid="Button1" usesubmitbehavior="true" text="打开新Web页" onclientclick="Navigate()" runat="server"onclick="Button1_Click"/>
functionNavigate()
{
javascript:window.open("http://www.
/");//打开一个网页 }<h3>Button.PostBackUrl示例</h3>输入一些需要传递到另一页的字符:<asp:textboxid="TextBox1"runat="server"></asp:textbox><asp:buttonid="Button1"text="指向本页"runat="Server"></asp:button><asp:buttonid="Button2"text="转向另一页"
postbackurl="targetpage.aspx"runat="Server"></asp:button> (3)PostBackUrl属性<scriptrunat="server">voidPage_Load(objectsender,System.EventArgse){
stringtext;text=((TextBox)PreviousPage.FindControl("TextBox1")).Text; if(text!="")
PostedLabel.Text="前一页传送来的文本是:"+text+".";else
PostedLabel.Text="前一页传送的是空文本";}</script><formid="Form1"runat="server"><h3>Button.PostBackUrl目标页示例</h3><br/><asp:labelid="PostedLabel"runat="server"></asp:label></form>确定用户单击位置ImageButton控件所呈现图片的坐标,方法如下:(1)为ImageButton控件的Click事件创建一个事件处理程序。在该方法中,事件参数对象的类型必须是ImageClickEventArgs。(2)在Click事件处理程序中,获取ImageClickEventArgs参数对象的X和Y属性。其中x坐标和y坐标用像素表示,图像左上角的坐标是(0,0)。。2.ImageButton控件protectedvoidImageButton1_Click(objectsender,ImageClickEventArgse){stringmsg="";intx=e.X;inty=e.Y;if(x>=50&&y>=50){msg="Southeast";}elseif(x>=50&&y<50){msg="Northeast";}elseif(x<50&&y>=50){msg="Southwest";}elseif(x<50&&y<50){msg="Northwest";}Label1.Text=msg; }</script><asp:ImageButtonID="ImageButton1"runat="server"ImageUrl="~/imagebutton/image/DSCN2769.jpg"onclick="ImageButton1_Click"style="width:100px;height:100px"/>1.复选框列表控件CheckBoxList5.2.3选择类控件<ASP:CheckBoxList
Id="被程序代码所控制的名称"Runat="Server"
AutoPostBack="True|False"CellPadding="像素"
DataSource="<%数据源%>"DataTextField="数据源的字段"DataValueField="数据源的字段"RepeatColumns="字段数量"
RepeatDirection="Vertical|Horizontal"RepeatLayout="Flow|Table"
TextAlign="Right|Left"OnSelectedIndexChanged="事件程序名称"><ASP:ListItemtext="显示文字"value="值"selected="True|False"/></ASP:CheckBoxList>表5-6CheckBoxList控件的常用属性表5-6CheckBoxList控件的常用属性
privatevoidbtnA_Click(objectsender,System.EventArgse){ intshtI; lblA.Text="您选择了:"; for(shtI=0;shtI<cblA.Items.Count;shtI++){ if(cblA.Items[shtI].Selected==true){ lblA.Text+=cblA.Items[shtI].Value+"、"; } } lblA.Text=lblA.Text.Remove(lblA.Text.Length-1,1)}<h3>CheckBoxList示例</h3> 请选择您感趣的五大足球联赛:<br> <ASP:CheckBoxListId="cblA"Runat="Server"> <ASP:ListItemvalue="英超">英国超级联赛</ASP:ListItem> <ASP:ListItemvalue="法甲">法国甲级联赛</ASP:ListItem> <ASP:ListItemvalue="德甲">德国甲级联赛</ASP:ListItem> <ASP:ListItemvalue="意甲">意大利甲级联赛</ASP:ListItem> <ASP:ListItemvalue="西甲">西班牙甲级联赛</ASP:ListItem> </ASP:CheckBoxList> <ASP:ButtonId="btnA"Text="确定"OnClick="btnA_Click"Runat="Server"/><ASP:RadioButtonList
Id="被程序代码所控制的名称" Runat="Server"
AutoPostBack="True|False" CellPadding="像素"
DataSource="<%数据源%>" DataTextField="数据源的字段" DataValueField="数据源的字段" RepeatColumns="字段数量"
RepeatDirection="Vertical|Horizontal"
RepeatLayout="Flow|Table" TextAlign="Right|Left" OnSelectedIndexChanged="事件程序名称">
<ASP:ListItemtext="显示文字"value="值"selected="True|False"/></ASP:RadioButtonList>2.单选列表控件RadioButtonListprivatevoidButton1_Click(objectsender,System.EventArgse){ Label1.Text="您的最高学历是:"+rblA.SelectedItem.Text+"学位,您是一名" +rblA.SelectedItem.Value;}请选择您的最高学历:<br><ASP:RadioButtonListId="rblA"Runat="Server"><ASP:ListItemText="学士"Selected="True"Value="本科生"/><ASP:ListItemText="硕士"Value="研究生"/><ASP:ListItemText="博士"Value="博士生"/></ASP:RadioButtonList><ASP:ButtonId="Button1"Text="提交"OnClick="Button1_Click"Runat="Server"/><P><ASP:LabelId="Label1"Runat="Server"/>3.下拉列表框控件DropDownList<ASP:DropDownList
Id="被程序代码所控制的名称" Runat="Server"
AutoPostBack="True|False" DataSource="<%数据源%>" DataTextField="数据源的字段" DataValueField="数据源的字段" OnSelectedIndexChanged="事件程序名称">
<ASP:ListItemtext="显示文字"value="值"selected="True|False"/></ASP:DropDownList>privatevoidButton1_Click(objectsender,System.EventArgse){ Label1.Text="您所在的城市:"+
DropDown1.SelectedItem.Text +",该城市的拼音缩写为:"+DropDown1.SelectedItem.Value; }请选择您所在的城市:<asp:DropDownListid=DropDown1runat="server"><asp:ListItemvalue="bj">北京</asp:ListItem><asp:ListItemvalue="sh">上海</asp:ListItem><asp:ListItemvalue="gz">广州</asp:ListItem><asp:ListItemvalue="wh"selected=true>武汉</asp:ListItem><asp:ListItemvalue="dl">大连</asp:ListItem><asp:ListItemvalue="cq">重庆</asp:ListItem></asp:DropDownList><asp:buttontext="提交"OnClick="list_Click"runat=server/><p>
<asp:Labelid=Label1font-name="Verdana"font-size="10pt"runat="server"></asp:Label>5.2.4链接控件
<ASP:Hyperlink Id="控件Id" Runat="Server" Text="超级链接文字或提示文字" ImageUrl="图片所在地址" Target="超级链接所要显示的窗口" NavigateUrl=”所要打开的Web页的路径”/>表5-7Target属性的特殊值<h3>HyperLink控件示例</h3> 单击下图可转到微软网站<br><asp:HyperLinkid="hyperlink1" ImageUrl="winxp.gif" NavigateUrl="" Text="Microsoft站点" Target="_new" runat="server"/>5.3验证控件5.3.1概述.5.3.2RequiredFieldValidator控件5.3.3CompareValdator控件5.3.4RangeValidator控件
5.3.5RegularExpressionValidator控件5.3.6CustomValidator控件5.3.7ValidationSummary控件5.3.1概述数据验证是一种限制使用者输入的限制,可以确定使用者所输入的数据是正确的.也可强迫使用者按照某一种格式输入数据。
在微软的.NET框架出来之前,采用的验证方法有两种:在客户端验证。在Web服务器端进行验证。5.3.1概述5.3.2RequiredFieldValidator控件通过在Web表单页中添加RequiredFieldValidator控件并将其链接到必需输入信息的控件,可以指定某个用户在特定控件中必须提供信息。其使用语法为:<ASP:RequireFieldValidatorId="被程序代码所控制的名称"Runat="Server"ControlToValidate="要验证的控件名称"ErrorMessage="所要显示的错误信息"Text="未输入数据时所显示的信息"/><html><head> <ScriptLanguage="c#"Runat="Server">privatevoidButton1_Click(objectsender,System.EventArgse){ if(Page.IsValid==true)lblMsg.Text="验证成功!"; }</Script></head><body><formrunat="server">用户名:<asp:TextBoxid="Text1"Text="请输入您的用户名!" runat="server"/><asp:RequiredFieldValidatorid="RequiredFieldValidator1"
ControlToValidate="Text1"Text="必填字段!"runat="server"/><asp:Buttonid="Button1"runat="server"Text="提交"
OnClick="btnOK_Click"/>
<ASP:LabelId="lblMsg"Runat="Server"/></form></body></html>5.3.3CompareValdator控件
将输入控件的值同常数值或其他输入控件的值相比较,以确定这两个值是否与由比较运算符(小于、等于、大于等等)指定的关系相匹配。如果比较的结果为false,则会产生验证错误。其使用语法为:<ASP:CompareValidator
Id="被程序代码所控制的名称"Runat="Server“
ControlToValidate="要验证的控件名称"Operator="DataTypeCheck|Equal|NotEqual|GreaterThan|GreaterThanEqual|LessThan|LessThanEqual"Type="要检查的数据类型"ControlToCompare=“要比较的控件名称”|ValueToCompare=“要 比较的值"ErrorMessage=“所要显示的错误信息”GreaterThanEqual|LessThan|LessThanEqual"Type="要检查的数据类型"ControlToCompare="要比较的控件名称"|ValueToCompare="要比较的值"ErrorMessage="所要显示的错误信息"Text=“未通过验证时所显示的讯息”/>表5-8验证控件所使用的数据类型表5-9Operator属性值下面分成三个例子来介绍CompareValidator控件的使用方法:(1)验证两个输入框所输入的值相同。(2)验证输入框所输入的数值要小于一个固定值(如120)。(3)验证输入框所输入的内容是数型数。1.验证两个输入框所输入的值相同这种验证一般用在用户注册的Web页面中,如密码输入的内容与确认密码输入的内容要求相同。其源代码如下所示:privatevoidButton1_Click(objectsender,System.EventArgse){
if(Page.IsValid==true)lblMsg.Text="验证成功!";}</Script></head>密码: <asp:TextBoxid="TextBox1"runat="server"textmode=password></asp:TextBox><asp:RequiredFieldValidatorid="RequiredFieldValidator1"
ControlToValidate="TextBox1"
Text="必填字段!"runat="server"/><br>确认密码:<asp:TextBoxid="TextBox2"runat="server"textmode=password></asp:TextBox><asp:RequiredFieldValidatorid="RequiredFieldValidator2"ControlToValidate="TextBox2"
Text="必填字段!"runat="server"/><br><asp:CompareValidatorid="CompareValidator1"runat="server"ErrorMessage="密码与确认密码必须相同"ControlToCompare="TextBox1"ControlToValidate="TextBox2"></asp:CompareValidator><br><p>
2.验证输入框所输入的数值要小于一个固定值
这种验证一般用在用户注册的Web页面中,如要求用户输入年龄,则这个值一般应小于120。其源代码如下:privatevoidButton1_Click(objectsender,System.EventArgse){ if(Page.IsValid)lblMsg.Text="验证成功!"; }年龄:<asp:TextBoxid="TextBox1"runat="server"></asp:TextBox>
<asp:RequiredFieldValidatorid="RequiredFieldValidator1"ControlToValidate="TextBox1"
Text="必填字段!" runat="server"/><br><ASP:CompareValidatorId="Validor1"Runat="Server"ControlToValidate="TextBox1"
ValueToCompare="120"Operator="LessThan"
Type="Integer"Text="年龄必须小于120岁"/><br><p>
<asp:Buttonid="Button1"runat="server"Text="提交"OnClick="btnOK_Click"/><ASP:LabelId="lblMsg"Runat="Server"/>
3.验证输入框所输入的内容是某一类型数据这种验证一般用在用户注册的Web页面中,如要求用户输入年龄必须为数字类型。其源代码如下:privatevoidButton1_Click(objectsender,System.EventArgse){ if(Page.IsValid)lblMsg.Text="验证成功!";}年龄:<asp:TextBoxid="TextBox1"runat="server"></asp:TextBox><asp:RequiredFieldValidatorid="RequiredFieldValidator1"ControlToValidate="TextBox1" Text="必填字段!"runat="server"/><br><ASP:CompareValidatorId="Validor1"Runat="Server"ControlToValidate="TextBox1"Operator="DataTypeCheck"
Type="Integer"Text="年龄必须是整数类型"/><br><p><asp:Buttonid="Button1"runat="server"Text="提交"OnClick="btnOK_Click"/><ASP:LabelId="lblMsg"Runat="Server"/>
5.3.4RangeValidator控件
RangeValidator控件可以检查用户的输入是否在指定的上限与下限之间。其使用语法为:
<ASP:RangeValidatorId=“被程序代码所控制的名称”Runat="Server"ControlToValidate="要验证的控件名称"MinimumValue=“最小值”MaximumValue="最大值"MinimumControl="限制最小值的控件名称"MaximumControl="限制最大值的控件名称"Type=“数据”ErrorMessage="所要显示的错误信息“Text="未通过验证时所显示的信息"/>年龄:<asp:TextBoxid="TextBox1"runat="server"></asp:TextBox><asp:RequiredFieldValidatorid="RequiredFieldValidator1" ControlToValidate="TextBox1"Text="必填字段!" runat="server"/><br><ASP:RangeValidatorId="Validor1"Runat="Server"ControlToValidate="TextBox1"MaximumValue="65"
MinimumValue="18"Type="Integer"Text="在册人员的年龄只可能在18至65之间"/><br><p><asp:Buttonid="Button1"runat="server"Text="提交"OnClick="btnOK_Click"/><ASP:LabelId="lblMsg"Runat="Server"/>
5.3.5RegularExpressionValidator控件
RegularExpressionValidator控件用于确定用户在某一输入控件中所输入的值是否与某个规则表达式所定义的模式相匹配。声明一个RegularExpressionValidator控件所使用语法为:<ASP:RegularExpressionValidatorId=“被程序代码所控制的名称”Runat="Server"ControlToValidate="要验证的控件名称"ValidationExpression="验证规则"ErrorMessage="所要显示的错误信息"Text="未通过验证时所显示的讯息"/>强调说明:如果用户在输入控件没有输入任何值(即该输入控件为空),则不调用任何验证函数并且验证成功。这样必须使用RequiredFieldValidator控件防止用户跳过某个输入控件。另外,RegularExpressionValidator控件中的ValidationExpression属性用于指定规则表达式,这个表达式被当成一个字符串进行处理。下面来详细介绍规则表达式的用法以及几个符号的特殊意义:括号“[]”:用于定义控件可接受的字符。例如:
[a-zA-Z]表示只接受a到z或是A到Z的英文字符。其中的短横线表示一个范围。
[x-zX-Z]表示只接收小写的x-z或大写的X-Z。
[win]
表示只接收w、i、n的英文字母。如果必须输入某个字符,则要把文字符放在方括号外。例如,测试邮件地址表达式为:
[a-zA-Z0-9]@[a-zA-Z0-9]表示符号@必须在输入字符串内,它的前后则可以是任何字母或数字。
反集合符号“^”:用于定义控件不可接受的字符。例如:
[^linux]表示除了l、i、n、u、x之外的英文字母都接收。“^”表示除…之外。花括号“{}”:用于定义必须输入的字符数量。例如:
[a-zA-Z]{4} 表示只接收4个字符。
[0,9]{4} 表示必须输入4个数字。
[a-zA-Z]{3,10}表示输入的字符数量必须在3到10个之间。
[a-zA-Z]{4,} 表示最少接受4个字符,最多不限制。小圆点“.”:符号可以用来表示接收除了空白外的任意字符,例如:
.{4,8} 表示可以接受4到8个任意字符。竖线“|”:表示“或”的逻辑符号。如果想要限制使用者的输入,只要符合两个规则的其中一个即接受,就可以使用该符号。例如使用者只要输入全部四个数值或是全部四个字母都接受的话,验证规则可以写成[a-zA-Z]{4}|[0-9]{4};表示四个所输入的数据如果不是全部都数值或是全部都英文字符则不正确。和把验证规则设定成[a-zA-Z0-9]{4}的结果和不一样,这样表示任何四个混杂四个大小写字符或数值的数据都接受。加号“+”:表示最少1个符合,最多到无限多个字符。例如:
[a-zA-Z]+表示不限制数目,接受a-z或A-Z的字符,但是至少输入一个字符。斜线“\”:也称作转义字符近。用于输出规则表达式中的特殊字符。即前面介绍一些有特定意义的符号,如果所要执行验证的字符如果包含这些符号,为了避奂二义性,在这些符号之前必须加上该符号。下面举一个综合例子。要对用户所输入的电话号码进行验证,输入格式必须为(区号)电话号码或者区号-电话号码或者直接是11位手机号码,如(027)12345678或其中,区号必须为3到5位,电话号码为5到10位,则其规则表达式为:\(\d{3}\)\d{5,9}|\d{3}-\d{5,9}|\d{11}。其源代码如下:<html><head> <title>RegularExpressionValidator控件</title><ScriptLanguage="c#"Runat="Server">privatevoidButton1_Click(objectsender,System.EventArgse){ if(Page.IsValid==true)lblMsg.Text="验证成功!"; }</Script></head><body><h3>RegularExpressionValidator控件示例</h3><formrunat="server"> 电话号码:<asp:TextBoxid="TextBox1"runat="server"></asp:TextBox><asp:RequiredFieldValidatorid="RequiredFieldValidator1" ControlToValidate="TextBox1" Text="必填字段!" runat="server"/><br><asp:RegularExpressionValidatorid="RegularExpressionValidator1"ControlToValidate="TextBox1"ValidationExpression="\(\d{3}\)\d{5,9}|\d{3}-\d{5,9}|\d{11}"ErrorMessage="电话号码的格式为:(027)123456789或EnableClientScript="False
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业硅捣炉工工艺流程
- 脚手架的搭设和拆除施工方案
- 公路土木工程建设施工可行性研究报告
- 耳塞式耳机购买协议
- 家居装饰补充协议书
- 标准入学保证书模板
- 招标工程材料采购
- 水电站建设招标条件
- 招标文件购买责任本
- 代购服务合同纠纷案例分析
- 第1课时淘气的一天(教学设计)-2024-2025学年北师大版(2024)一年级上册数学
- 2024-2025学年统编版(2024)道德与法治小学一年级上册教学设计
- 医院医技科室与临床科室定期沟通制度
- 期中 (试题) -2024-2025学年人教PEP版(2024)英语三年级上册
- 律师事务所人员管理制度
- 渣土、余土运输服务方案(技术方案)
- 网络安全管理责任制度制度存在的问题(8篇)
- 20以内的加法口算练习题4000题 205
- 《网络系统建设与运维》课件-项目一 5G技术特点和网
- 渠道衬砌施工方案(渠道预制混凝土块)
- 篮球球星姚明课件
评论
0/150
提交评论