版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第第4章章ASP.NET服务器控件服务器控件 2内容v服务器控件概述服务器控件概述 vHTML服务器控件服务器控件 vWeb服务器控件服务器控件 v验证控件验证控件 v用户控件用户控件 34.1 服务器控件概述服务器控件概述 vASP.NET服务器控件可以分为如下几类:服务器控件可以分为如下几类:HTML服务器控件服务器控件:提供了对标准:提供了对标准HTML元素的类封装,在元素的类封装,在HTML控件中控件中添加一个在服务器端运行的属性,即添加一个在服务器端运行的属性,即可以由通用的客户端可以由通用的客户端HTML控件转变控件转变为服务器端为服务器端HTML控件,使开发人员控件,使开发人员
2、可以对其进行编程。可以对其进行编程。4Web服务器控件服务器控件:比:比HTML服务器控件具有服务器控件具有更多功能。更多功能。Web服务器控件不仅包括窗体控服务器控件不仅包括窗体控件(例如按钮和文本框),而且还包括特殊件(例如按钮和文本框),而且还包括特殊用途的控件(例如日历、菜单和树视图控用途的控件(例如日历、菜单和树视图控件)。件)。Web服务器控件与服务器控件与HTML服务器控件服务器控件相比更为抽象,因为其对象模型不一定反映相比更为抽象,因为其对象模型不一定反映HTML语法。语法。验证控件验证控件:这些控件可以使开发人员更容易对:这些控件可以使开发人员更容易对一些控件中的数据进行验证
3、。如验证控件可用于一些控件中的数据进行验证。如验证控件可用于对必填字段进行检查,对照字符的特定值或模式对必填字段进行检查,对照字符的特定值或模式进行测试,验证某个值是否在限定范围之内等。进行测试,验证某个值是否在限定范围之内等。5导航控件导航控件:这些控件被设计用于显示站点地图,:这些控件被设计用于显示站点地图,允许用户从一个网页导航到另一个网页,如允许用户从一个网页导航到另一个网页,如Menu控件、控件、SiteMapPath控件等。控件等。数据控件数据控件:用于显示大量数据的控件,如:用于显示大量数据的控件,如GridView、ListView控件等,这些控件支持很控件等,这些控件支持很多
4、高级的定制功能,比如模板、允许添加、删除、多高级的定制功能,比如模板、允许添加、删除、编辑等。数据控件还包括数据源控件,如编辑等。数据控件还包括数据源控件,如SqlDataSource、LinqDataSource控件等。使控件等。使开发人员能够使用声明的方式绑定到不同类型的开发人员能够使用声明的方式绑定到不同类型的数据源,简化数据绑定的过程。数据源,简化数据绑定的过程。6登录控件登录控件:简化创建用户登录页面的过程,使:简化创建用户登录页面的过程,使开发人员更容易编写用户授权和管理的程序。开发人员更容易编写用户授权和管理的程序。WebParts控件控件:WebParts是是ASP.NET中用
5、于中用于构建组件化的、高度可配置的构建组件化的、高度可配置的Web门户的一套门户的一套ASP.NET编程控件。编程控件。ASP.NET AJAX控件控件:允许开发人员在:允许开发人员在Web应应用程序中使用用程序中使用AJAX技术,而不需要编写大量技术,而不需要编写大量的客户端代码。的客户端代码。74.2 HTML服务器控件服务器控件vHTML服务器控件概述服务器控件概述 vHTML服务器控件综合示例服务器控件综合示例 84.2.1 HTML服务器控件概述服务器控件概述1HTML服务器控件的基本语法服务器控件的基本语法 v传统的HTML元素是不能被ASP.NET服务器端直接使用的,但是通过将这
6、些HTML元素的功能进行服务器端的封装,开发人员就可以在服务器端使用这些HTML元素。v在Visual Studio 2010集成开发环境中,从工具箱的“HTML”选项中拖放一个Input(submit)按钮控件到设计页面上,切换到源视图,Input(submit)的HTML源代码标记如下:v在标记中直接添加runat=server,可以将HTML控件转化为HTML服务器控件。设置为服务器控件后,源代码标记如下:vid用来设置控件的名称,在一个程序中各控件的id均不相同,具有唯一性。id属性允许以编程方式引用该控件。runat=server表示作为服务器控件运行。92HTML控件的类型控件的类
7、型 vHTML控件位于控件位于System.Web.UI.HtmlControls命命名空间中,从名空间中,从HtmlControl基类中直接或间接派生基类中直接或间接派生出来的,包含二十多个出来的,包含二十多个HTML控件。控件。1、输入控件、输入控件 2、文本区域控件、文本区域控件 3、表格控件、表格控件 4、Image控件控件 5、选择控件、选择控件 6、水平线控件、水平线控件 7、Div容器控件容器控件 103HTML服务器控件的公共属性服务器控件的公共属性 11124HTML服务器控件的事件服务器控件的事件 vHTML服务器控件不仅可以添加客户端事件代码,服务器控件不仅可以添加客户端
8、事件代码,而且可以添加服务器端事件代码。而且可以添加服务器端事件代码。【例【例4-1】演示如何为】演示如何为HtmlInputSubmit控件的事件控件的事件添加方法。添加方法。 13HTML控件的常见客户端事件控件的常见客户端事件 144.2.2 HTML服务器控件综合示例服务器控件综合示例【例【例4-2】演示如何使用】演示如何使用HTML服务器端控件制作服务器端控件制作一个图片浏览器。一个图片浏览器。154.3 Web服务器控件服务器控件 vWeb服务器控件概述服务器控件概述 v常用常用Web服务器控件服务器控件 164.3.1 Web服务器控件概述服务器控件概述1Web服务器控件基本语法
9、服务器控件基本语法v从左边工具箱中拖放一个从左边工具箱中拖放一个Web服务器控件到页面上,服务器控件到页面上,其其HTML源代码标记如下:源代码标记如下:或者:或者:如如Button控件,基本语法为:控件,基本语法为:17将控件添加到将控件添加到Web窗体中,有窗体中,有3种方法。种方法。v方法方法1:从工具箱中添加控件。:从工具箱中添加控件。v方法方法2:在源视图中,直接添加控件声明代码。:在源视图中,直接添加控件声明代码。v方法方法3:以编程方式动态创建:以编程方式动态创建Web服务器控件。服务器控件。182Web服务器控件的公共属性服务器控件的公共属性19控件属性的设置有两种方法:控件属
10、性的设置有两种方法:v方法方法1:设计时通过属性窗设置控件的属性。:设计时通过属性窗设置控件的属性。v方法方法2:运行时以编程方式设置控件的属性。:运行时以编程方式设置控件的属性。203Web服务器控件的客户端事件服务器控件的客户端事件向向ASP.NET服务器控件添加客户端事件的服务器控件添加客户端事件的3种方法:种方法:v方法方法1:以声明方式向:以声明方式向ASP.NET服务器控件添加客服务器控件添加客户端事件处理程序户端事件处理程序在源视图中,为控件直接添加事件属性。例如,在源视图中,为控件直接添加事件属性。例如,onmouseover 或或onkeyup。针对不同属性添加。针对不同属性
11、添加要执行的客户端脚本。要执行的客户端脚本。【例【例4-3】演示一个包含客户端脚本的】演示一个包含客户端脚本的ASP.NET网页,当用户将鼠标移到按钮上方时,此脚本就网页,当用户将鼠标移到按钮上方时,此脚本就会更改该按钮的文本颜色。会更改该按钮的文本颜色。21v方法方法2:以编程方式向:以编程方式向ASP.NET控件添加客户端控件添加客户端事件处理程序。事件处理程序。在页面的在页面的Init或或Load事件中调用控件的事件中调用控件的Attributes集合的集合的Add方法来动态添加客户端方法来动态添加客户端事件处理程序。事件处理程序。【例【例4-4】演示如何动态地向】演示如何动态地向Tex
12、tBox控件添加控件添加客户端脚本。该客户端脚本显示客户端脚本。该客户端脚本显示TextBox控件控件中的文本长度。中的文本长度。22v方法方法3:向按钮控件添加客户端:向按钮控件添加客户端Onclick事件。事件。在按钮控件(在按钮控件(Button、LinkButton 和和 ImageButton 控件)中,要添加客户端控件)中,要添加客户端Onclick事件,可以在设计视图中将按钮控件的事件,可以在设计视图中将按钮控件的OnClientClick属性设置为要执行的客户端脚本,属性设置为要执行的客户端脚本,也可以在源视图中直接添加也可以在源视图中直接添加OnClientClick属性。属
13、性。【例【例4-5】演示如何向】演示如何向Button控件添加客户端控件添加客户端Click事件。事件。234Web服务器控件的服务器端事件服务器控件的服务器端事件24添加服务器端事件的添加服务器端事件的2种方法。种方法。v方法方法1:设计时在属性窗中添加事件处理。:设计时在属性窗中添加事件处理。25v方法方法2:运行时以编程方式动态添加事件处理。:运行时以编程方式动态添加事件处理。例如:例如:protected void Button1_Click(object sender, EventArgs e)然后,将该方法和控件的单击事件关联,代码如下:然后,将该方法和控件的单击事件关联,代码如下
14、:Button1.Click += new EventHandler(Button1_Click);264.3.2 常用常用Web服务器控件服务器控件1.Label控件:用于在网页上显示文本。控件:用于在网页上显示文本。v声明声明Label的语法格式:的语法格式:vLabel控件只能用来显示文本,它只有控件只能用来显示文本,它只有Text属性,属性,用来获取或设置指定在用来获取或设置指定在Label控件上显示的文字。控件上显示的文字。272.TextBox控件控件vTextBox控件可用于制作单行、多行文本框和密码控件可用于制作单行、多行文本框和密码框。框。v声明声明TextBox控件的语法格
15、式:控件的语法格式: 28TextBox控件本身特有的属性:控件本身特有的属性:vAutoPostBack属性:属性:获取或设置当获取或设置当TextBox控件控件上的内容发生改变时,是否自动将窗体数据回传到上的内容发生改变时,是否自动将窗体数据回传到服务器,默认为服务器,默认为False,不回传;为,不回传;为True时,则要时,则要回传。该属性要与回传。该属性要与TextChanged事件配合使用。事件配合使用。vMaxLenth属性:属性:获取或设置文本框中最多允许的获取或设置文本框中最多允许的字符数。当字符数。当TextMode属性设为属性设为MultiLine时,此属时,此属性不可用
16、。性不可用。29vReadOnly属性:属性:获取或设置获取或设置TextBox控件是否为控件是否为只读。当该属性设置为只读。当该属性设置为True时,将禁止用户输入时,将禁止用户输入或更改现有值。默认值为或更改现有值。默认值为False。vText属性:属性:获取或设置文本框的文本内容。获取或设置文本框的文本内容。vTextMode属性:属性:获取或设置文本框的类型。获取或设置文本框的类型。TextBox有有3种取值:种取值:MultiLine为多行输入模式;为多行输入模式;Password为密码输入模式;为密码输入模式;SingleLine为单行为单行输入模式。默认值为输入模式。默认值为S
17、ingleLine。30vTextBox主要的服务器端事件是主要的服务器端事件是TextChanged事件。事件。当当Text属性的值改变时,会触发此事件。属性的值改变时,会触发此事件。当当AutoPostBack属性设置为属性设置为True时,用户更改文本框的时,用户更改文本框的内容并将焦点移开文本框时,将自动回传页面并触发内容并将焦点移开文本框时,将自动回传页面并触发TextChanged事件。事件。当当AutoPostBack属性设置为属性设置为False时,即便用户更改文时,即便用户更改文本框的内容并将焦点移开文本框,也不会自动回传页面,本框的内容并将焦点移开文本框,也不会自动回传页面
18、,需等到回传页面的事件发生时(如按钮控件的需等到回传页面的事件发生时(如按钮控件的Click事事件),才会触发件),才会触发TextChanged事件。事件。 【例例4-6】演示如何将演示如何将TextBox控件的控件的AutoPostBack属性与属性与TextChanged事件配合使用。事件配合使用。31v超链接(超链接(HyperLink)控件用于创建文本或图)控件用于创建文本或图片超链接。声明片超链接。声明HyperLink控件的语法格式:控件的语法格式: HyperLink控件的主要属性如下:控件的主要属性如下:ImageURL属性:属性:获取或设置获取或设置HyperLink控件的
19、图片来源。控件的图片来源。NavigateURL属性:属性:获取或设置获取或设置HyperLink控件所要链接到的控件所要链接到的URL。Target属性:属性:获取或设置单击获取或设置单击HyperLink控件时显示链接到的网页控件时显示链接到的网页内容的目标窗口或框架。内容的目标窗口或框架。 Text属性:属性:获取或设置获取或设置HyperLink控件的超链接文本。控件的超链接文本。 【例例4-7】演示如何设置演示如何设置Target属性来指定窗口或框架,用以属性来指定窗口或框架,用以显示与显示与HyperLink控件关联的页。控件关联的页。3. HyperLink控件控件324. Im
20、age控件控件vImage控件只是简单地完成一个图像显示任务,控件只是简单地完成一个图像显示任务,与与HTML的的Image功能相同。功能相同。v声明声明Image控件的语法格式为:控件的语法格式为:该控件的属性:该控件的属性:AlternateText属性:属性:设置图像无法显示时显示设置图像无法显示时显示的替换文字。的替换文字。ImageUrl属性:属性:设置图像所在的位置。设置图像所在的位置。ToolTip属性:属性:将鼠标放置在图片控件上时,显将鼠标放置在图片控件上时,显示的工具提示。示的工具提示。注意:注意:Image控件不响应用户事件,但是它可以根据控件不响应用户事件,但是它可以根
21、据其它控件的输入动态地显示图片。其它控件的输入动态地显示图片。335. Button、LinkButton和和ImageButton控件控件 vASP.NET包含包含3类用于向服务器端提交表单的控件:类用于向服务器端提交表单的控件:Button、LinkButton和和ImageButton。这。这3类控件类控件拥有同样的功能,但每类控件的外观截然不同。拥有同样的功能,但每类控件的外观截然不同。特殊属性:特殊属性:CommandArgument:用于指定传给用于指定传给Command事件的命令参数。事件的命令参数。CommandName:指定传给指定传给Command事件的命令名。事件的命令名
22、。OnClientClick:指定点击按钮时执行的客户端脚本。指定点击按钮时执行的客户端脚本。PostBackUrl:单击按钮时所发送到的单击按钮时所发送到的URL。Text:将在按钮上呈现的文本。将在按钮上呈现的文本。UseSubmitBehavior:指示按钮是否呈现为提交按钮。指示按钮是否呈现为提交按钮。34vButton控件支持控件支持Focus()方法,用于把焦点设为该方法,用于把焦点设为该Button控件。控件。Button控件还支持下面两个事件:控件还支持下面两个事件:Click:点击点击Button控件时引发。控件时引发。Command:点击点击Button控件时引发。控件时引
23、发。CommandName和和CommandArgument的值的值传给这个事件。传给这个事件。35声明声明Button控件的语法格式:控件的语法格式:【例【例4-8】在页面上包含一个】在页面上包含一个Button控件,点击该控件,点击该Button控件,将在控件,将在Label控件中显示系统日期。控件中显示系统日期。36v声明声明LinkButton控件的语法格式为:控件的语法格式为:按按钮上的文字钮上的文字 【例【例4-9】在页面上包含一个】在页面上包含一个LinkButton控件,点击该控件,点击该LinkButton控件,将在控件,将在Label控件中显示系统日期。控件中显示系统日期。
24、37vImageButton控件是以图片的形式提供的按钮控件,控件是以图片的形式提供的按钮控件,功能与功能与Button相同,外观与相同,外观与Image控件相同。控件相同。v声明声明ImageButton控件的语法格式为:控件的语法格式为: 【例【例4-10】在页面中包含一个】在页面中包含一个ImageButton和一个和一个Label控件,点击该控件,点击该ImageButton上的图片,将在上的图片,将在Label控件中显示点击的位置。控件中显示点击的位置。38【例【例4-11】演示如何用一个事件方法统一处理多个按】演示如何用一个事件方法统一处理多个按钮的提交事件。钮的提交事件。39vD
25、ropDownList控件允许用户从预定义的下拉列表中控件允许用户从预定义的下拉列表中选择一项。选择一项。v声明声明DropDownList控件的语法格式为:控件的语法格式为:Text6. DropDownList和和ListBox控件控件40DropDownList控件的主要属性如下:控件的主要属性如下:AutoPostBack属性:属性:获取或设置当改变获取或设置当改变DropDownList控件的选择状态时,是否自动上控件的选择状态时,是否自动上传窗体数据到服务器。默认为传窗体数据到服务器。默认为False。Items属性:属性:包含该控件所有选项的集合。每个包含该控件所有选项的集合。每
26、个列表项都是一个单独的对象,具有自己的属性。列表项都是一个单独的对象,具有自己的属性。SelectedIndex属性:属性:获取当前选择项的下标获取当前选择项的下标(下标从(下标从0开始)。开始)。SelectedItem属性:属性:获取当前选择项对象。获取当前选择项对象。41vDropDownList控件有控件有SelectedIndexChanged事事件,当用户选择一项时,件,当用户选择一项时,DropDownList控件将引控件将引发发SelectedIndexChanged事件。事件。v默认情况下,此事件不会导致向服务器发送页面,默认情况下,此事件不会导致向服务器发送页面,但当该控件
27、的但当该控件的AutoPostBack属性设置为属性设置为True时,时,该事件会立即回发页面。该事件会立即回发页面。【例【例4-12】演示】演示DropDownList控件的使用。控件的使用。42vListBox控件与控件与DropDownList控件的功能基本相控件的功能基本相似,似,ListBox控件将所有选项都显示出来,提供单控件将所有选项都显示出来,提供单选或多选的列表框。选或多选的列表框。vListBox控件比控件比DropDownList控件多两个属性:控件多两个属性:Rows属性:获取或设置属性:获取或设置ListBox控件显示的选项控件显示的选项行数,默认值为行数,默认值为4
28、。SelectionMode属性:获取或设置属性:获取或设置ListBox控件控件的选项模式,的选项模式,Single为单选,为单选,Multiple为多选,为多选,默认为默认为Single。当允许多选时,只需按住。当允许多选时,只需按住Ctrl键键或或Shift键并单击要选取的选项,便可完成多选。键并单击要选取的选项,便可完成多选。【例【例4-13】演示】演示ListBox控件的使用。控件的使用。43vCheckBox控件用于创建单个复选框,供用户选择。控件用于创建单个复选框,供用户选择。v声明声明CheckBox控件的语法格式:控件的语法格式:vCheckBox控件的常用属性:控件的常用属
29、性:Checked属性:属性:获取或设置该项是否选中。获取或设置该项是否选中。TextAlign属性:属性:控件文字的位置。控件文字的位置。Text属性:属性:获取或设置获取或设置CheckBox控件的文本内容。控件的文本内容。Value属性:属性:获取或设置获取或设置CheckBox控件的值内容。控件的值内容。7. CheckBox和和CheckBoxList控件控件44AutoPostBack属性:获取或设置当改变属性:获取或设置当改变CheckBox控件的选择状态时,是否自动回传窗体数据到服务器。控件的选择状态时,是否自动回传窗体数据到服务器。值为值为True时,表示单击时,表示单击Ch
30、eckBox控件,页面自动回控件,页面自动回发;值为发;值为False时,不回发。默认值为时,不回发。默认值为False。vCheckBox控件具有控件具有CheckedChanged事件。当事件。当Checked属性的值改变时,会触发此事件。与属性的值改变时,会触发此事件。与TextBox控件类似,该事件要与控件类似,该事件要与AutoPostBack属属性配合使用。性配合使用。【例【例4-14】演示】演示CheckBox控件的使用。控件的使用。45v声明声明CheckBoxList控件的语法格式:控件的语法格式: text v该控件的属性、用法及功能与该控件的属性、用法及功能与ListBo
31、x控件基本相同。控件基本相同。除此之外,还有自己的特殊属性。除此之外,还有自己的特殊属性。RepeatDirection:表示是横向还是纵向排列。表示是横向还是纵向排列。RepeatColumns:一行排几列。一行排几列。TextAlign属性:属性:控件文字的位置。控件文字的位置。Selected属性:属性:表示该选项是否选中。表示该选项是否选中。【例【例4-15】使用】使用CheckBoxList控件完成【例控件完成【例4-14】的】的功能。功能。46vRadioButton控件用于创建单个单选框,供用户选择。控件用于创建单个单选框,供用户选择。v声明声明RadioButton控件的语法格
32、式:控件的语法格式:vRadioButton控件的常用属性和事件与控件的常用属性和事件与CheckBox控控件基本相同。件基本相同。vRadioButton控件还有一个特殊的属性控件还有一个特殊的属性GroupName,用于设置单选按钮所属的组名,通过将多个单选按钮用于设置单选按钮所属的组名,通过将多个单选按钮的组名设为相同值,将其分为一组相互排斥的选项。的组名设为相同值,将其分为一组相互排斥的选项。【例【例4-16】演示】演示RadioButton控件的使用。控件的使用。8.RadioButton和和RadioButtonList控件控件47v与与CheckBoxList控件类似,控件类似,
33、RadioButtonList控件是控件是一个一个RadioButton控件组,当存在多个单选框时,用控件组,当存在多个单选框时,用该控件比该控件比RadioButton简单。简单。v声明声明RadioButtonList控件的语法格式:控件的语法格式: Text vRadioButtonList控件和控件和CheckBoxList控件的属性和控件的属性和事件相同。事件相同。【例【例4-17】使用】使用RadioButtonList控件完成【例控件完成【例4-16】的功能。的功能。48vPanel控件是一个放置其它控件的容器,可以在其内控件是一个放置其它控件的容器,可以在其内放置不同控件。利用
34、它的这个特性,可以将不同的控放置不同控件。利用它的这个特性,可以将不同的控件组成一个群组,并控制它的显示或隐藏。件组成一个群组,并控制它的显示或隐藏。v声明声明Panel控件的语法格式:控件的语法格式: vPanel控件的主要属性:控件的主要属性:BackImageUrl属性:属性:设置设置Panel背景图形。背景图形。HorizontalAlign属性:属性:设置水平对齐方式。设置水平对齐方式。Visible属性:属性:是否显示还是隐藏。是否显示还是隐藏。ScrollBars属性:属性:是否设置水平或垂直滚动条。例如,将该是否设置水平或垂直滚动条。例如,将该属性设置为属性设置为Auto时,当
35、控件长度和宽度超过时,当控件长度和宽度超过Panel控件的长或控件的长或宽时,将自动显示出滚动条。宽时,将自动显示出滚动条。9.Panel控件控件49vMultiView和和View控件可以制作选项卡的效果,控件可以制作选项卡的效果,MultiView控件用作一个或多个控件用作一个或多个View控件的外部控件的外部容器。容器。View控件又可包含标记和控件的任何组合。控件又可包含标记和控件的任何组合。切换到源视图,控件声明代码如下:切换到源视图,控件声明代码如下: 10.MultiView和和View控件控件50vMultiView控件的常用属性、方法和事件:控件的常用属性、方法和事件:Act
36、iveViewIndex属性:属性:用于获取或设置当前被激活用于获取或设置当前被激活显示的显示的View控件的索引值。默认值为控件的索引值。默认值为-1,表示没有,表示没有View控件被激活。控件被激活。SetActiveView方法:方法:用于激活显示特定的用于激活显示特定的View控控件。件。ActiveViewChanged事件:事件:当视图切换时被激发。当视图切换时被激发。v在在MultiView控件中,一次只能将一个控件中,一次只能将一个View控件定义为活动视控件定义为活动视图。如果某个图。如果某个View控件定义为活动视图,它所包含的子控件控件定义为活动视图,它所包含的子控件则会
37、呈现到客户端。可以使用则会呈现到客户端。可以使用MultiView控件的控件的ActiveViewIndex属性或属性或SetActiveView方法定义活动视图。如果方法定义活动视图。如果ActiveViewIndex为为-1,则,则MultiView控件不向客户端呈现任何内容。控件不向客户端呈现任何内容。51【例【例4-18】演示】演示View和和MultiView控件的使用。控件的使用。参见示例参见示例第第04章章WebControlDemoMultiViewDemo.aspx 52vCalendar控件用于创建日历。在该控件上用户可控件用于创建日历。在该控件上用户可以方便准确地输入日期
38、。以方便准确地输入日期。v声明声明Calendar控件的语法格式:控件的语法格式: 与日期选取及设置的有关属性:与日期选取及设置的有关属性:SelectionMode属性:属性:设置日期选择模式,可设为设置日期选择模式,可设为Day(只能选择某一天只能选择某一天)、None(不能选择日期,只能显示日期)、不能选择日期,只能显示日期)、DayWeek(可以选择整星期或某天可以选择整星期或某天)、DayWeekMonth(可以选择某月、某星期或某天可以选择某月、某星期或某天)SelectedDate属性:属性:用户选中的日期。用户选中的日期。SelectedDates属性:属性:用户选择的多个日期
39、,是一个数组。用户选择的多个日期,是一个数组。Calendar控件具有控件具有SelectionChanged事件,当用户选择日期时,会驱动该事件事件,当用户选择日期时,会驱动该事件【例例4-19】演示演示Calendar控件的使用。控件的使用。参见示例参见示例第第04章章WebControlDemoCalendarDemo.aspx 11.Calendar控件控件534.4验证控件验证控件v验证控件概述验证控件概述 v验证控件的使用验证控件的使用 v验证组的使用验证组的使用 v禁用验证禁用验证 v以编程方式测试验证有效性以编程方式测试验证有效性 544.4.1 验证控件概述验证控件概述v为什
40、么要验证用户输入为什么要验证用户输入v验证过程验证过程55为什么要验证用户输入为什么要验证用户输入v输入验证是检验输入验证是检验Web窗体中用户的输入是否和期窗体中用户的输入是否和期望的数据值、范围或格式相匹配的过程,可以减少望的数据值、范围或格式相匹配的过程,可以减少等待错误信息的时间降低发生错误的可能性,从而等待错误信息的时间降低发生错误的可能性,从而改善用户访问改善用户访问Web站点的体验站点的体验 v用户输入验证的目的用户输入验证的目的减少错误处理的等待时间减少错误处理的等待时间避免非法的用户输入导致的错误结果避免非法的用户输入导致的错误结果避免非法的用户输入导致服务器崩溃避免非法的用
41、户输入导致服务器崩溃避免欺骗或恶意代码避免欺骗或恶意代码阻止阻止 Web 窗体进行下一步处理,直到所有的用窗体进行下一步处理,直到所有的用户输入都通过验证户输入都通过验证56验证过程验证过程 57客户端验证和服务器端验证的区别客户端验证和服务器端验证的区别58ASP.NET验证控件 5960验证控件的共有属性验证控件的共有属性 61vDisplay属性属性:流布局模式下,设置多个验证:流布局模式下,设置多个验证控件的错误信息的空间排列方式。控件的错误信息的空间排列方式。NoneStaticDynamic在验证控件的位置上不显示错误信息在验证控件的位置上不显示错误信息在页面布局中分配用于显示验证
42、消息的空间在页面布局中分配用于显示验证消息的空间如果验证成功,将不占据页面空间如果验证成功,将不占据页面空间62均验证失败第一个验证控件通过验证成功均验证失败第一个验证控件通过验证成功Static显示显示nDynamic显示显示63vErrorMessage 属性指定验证失败后在验证控件中显示的文本指定验证失败后在验证控件中显示的文本如果设置了如果设置了 Text 属性,不显示属性,不显示 ErrorMessagevText 属性指定将在验证控件中显示的文本指定将在验证控件中显示的文本已设置已设置已设置已设置未设置未设置未设置未设置已设置已设置已设置已设置 显示显示 ErrorMessage
43、文本文本 显示显示 Text 文本文本 显示显示 Text 文本文本644.4.2验证控件的使用验证控件的使用1、RequiredFieldValidator控件控件u在页中添加在页中添加 RequiredFieldValidator 控件并将控件并将其链接到必需的控件,可以指定用户在其链接到必需的控件,可以指定用户在ASP.NET 网页上的特定控件中必须输入信息网页上的特定控件中必须输入信息 【例例4-20】演示如何验证用户在文本框中已输入数据。演示如何验证用户在文本框中已输入数据。参见示例参见示例第第04章章WebValidatorRequiredFieldValidator.aspx 6
44、5InitialValue属性属性:当设置该值时,表示控件中输入:当设置该值时,表示控件中输入该值时无效,其他任何情况均有效。该值时无效,其他任何情况均有效。【例例4-21】演示如何使用演示如何使用RequiredFieldValidator控件来控件来验证验证DropDownList控件的输入。控件的输入。参见示例参见示例第第04章章WebValidatorShowInitialValue.aspx 662、CompareValidator控件控件测试用户的输入是否符合指定的值或者符合另测试用户的输入是否符合指定的值或者符合另一个输入控件的值。一个输入控件的值。空输入作为有效验证。空输入作为
45、有效验证。ControlToCompare:确定要比较的另一个控件。确定要比较的另一个控件。Operator:指定使用的比较运算符。指定使用的比较运算符。Type:指定数据类型,希望输入控件中的值与某个指定数据类型,希望输入控件中的值与某个数据类型匹配。数据类型匹配。ValueToCompare:确定要比较的某个常数值确定要比较的某个常数值67【例例4-23】使用使用CompareValidator控件对数据进行类型控件对数据进行类型检查。要求用户输入合法的日期,否则验证失败。检查。要求用户输入合法的日期,否则验证失败。 参见示例参见示例第第04章章WebValidatorCompareVal
46、idator.aspx 【例例4-22】在设计用户注册页面时,希望用户输入两在设计用户注册页面时,希望用户输入两次密码,使用次密码,使用CompareValidator验证控件来判断两次验证控件来判断两次输入的密码是否相等。输入的密码是否相等。 683、RangeValidator控件:控件:验证输入值是否在给定的范围内。验证输入值是否在给定的范围内。输入值介于最小值和最大值之间是有效的。输入值介于最小值和最大值之间是有效的。空输入作为有效验证。空输入作为有效验证。 MinimumValue:指定有效范围的最小值。指定有效范围的最小值。 MaxmumValue:指定有效范围的最大值。指定有效范
47、围的最大值。Type:指定要比较的值的数据类型。指定要比较的值的数据类型。【例例4-24】演示如何通过演示如何通过RangeValidator控件验证文本框中控件验证文本框中的年龄输入在的年龄输入在0200之间。之间。参见示例参见示例第第04章章WebValidatorRangeValidator.aspx 694RegularExpressionValidator控件控件v在需要确定该值是否与某个正则表达式所定义在需要确定该值是否与某个正则表达式所定义的模式相匹配的情况下使用的模式相匹配的情况下使用vValidationExpression属性属性:编辑正则表达式:编辑正则表达式vVisua
48、l Studio.NET 提供以下预定义模式提供以下预定义模式电话号码电话号码邮政编码邮政编码E-mail 地址地址注意:提供的这些预定义的模式的正则表达式未必正确。注意:提供的这些预定义的模式的正则表达式未必正确。70正则表达式字符含意正则表达式字符含意71例如:例如:S3,63到到6位字符位字符A-Za-z2,5由由2-5个字母组成个字母组成A-Zd5以一个大写字母开头,加以一个大写字母开头,加5位数字位数字d55位的整数位的整数.*#&.*至少包含至少包含#&中的一个字符中的一个字符(d11)|(d3,4-)?d7,8) 中国电话号码(手机或固中国电话号码(手机或固定电话
49、)定电话) 72【例例4-25】演示如何使用预定义表达式来验证演示如何使用预定义表达式来验证输入的电子邮件地址。输入的电子邮件地址。参见示例参见示例第第04章章WebValidatorRegularExpressionValidator.aspx 【例例4-26】演示如何使用自定义表达式验证输入。演示如何使用自定义表达式验证输入。如果要求用户输入一个以大写字母开头,再加如果要求用户输入一个以大写字母开头,再加5位阿拉伯位阿拉伯数字的格式化数据。很显然,预定义表达式里没有这样数字的格式化数据。很显然,预定义表达式里没有这样的格式定义只能通过正则表达式进行自定义。按照上面的格式定义只能通过正则表达
50、式进行自定义。按照上面的格式要求,该正则表达式应该为的格式要求,该正则表达式应该为“A-Zd5”。735. CustomValidator 控件v必须手动编写客户端和服务器端验证代码必须手动编写客户端和服务器端验证代码vClientValidationFunction 属性属性用于验证的自定义客户端脚本函数的名称用于验证的自定义客户端脚本函数的名称vServerValidate 事件事件服务器端验证事件的名称服务器端验证事件的名称v在验证函数中通过属性在验证函数中通过属性Args.IsValid来设置来设置CustomValidator控件是否有效。控件是否有效。74【例例4-27】下面将编写
51、一个下面将编写一个CustomValidator控件控件的验证函数用来确定的验证函数用来确定TextBox控件中用户输入是控件中用户输入是否超过否超过8个字符。个字符。参见示例参见示例第第04章章WebValidatorCompareValidator.aspx vCustomValidator 灵活性高,可以灵活性高,可以与给定的公式比较与给定的公式比较 与存储在服务器中的数据比较,如存储在数据与存储在服务器中的数据比较,如存储在数据库中的密码库中的密码通过调用通过调用 COM 对象比较对象比较通过调用通过调用 Web 服务比较服务比较75组合使用验证控件组合使用验证控件v多个验证控件应用于
52、同一输入控件多个验证控件应用于同一输入控件各个验证控件的各个验证控件的 ControlToValidate 属性设为同一值属性设为同一值v只有只有 RequiredFieldValidator 检查输入控件的值是否检查输入控件的值是否为空值为空值v组合使用验证控件验证电话号码的例子组合使用验证控件验证电话号码的例子RequiredFieldValidator 验证用户输入的值是否为空验证用户输入的值是否为空RegularExpressionValidator 验证电话号码是否符合给定验证电话号码是否符合给定格式格式766. ValidationSummary 控件控件vPage.IsValid
53、 返回返回 False 时显示错误信息时显示错误信息v在一个位置上汇总在一个位置上汇总 Web 页上所有验证控件的页上所有验证控件的错误信息错误信息vHeaderText属性:属性:设置标题设置标题vDisplayMode 属性,有属性,有3个值可选:个值可选:BulletList:项目符号列表显示:项目符号列表显示List:无符号列表显示:无符号列表显示SingleParagraph:单个段落显示:单个段落显示77vShowMessageBox 属性:属性:是否弹出一个错误列是否弹出一个错误列表的对话框表的对话框v使用使用 ValiationSummary 控件时,控件时,其他验证控其他验证
54、控件通常使用件通常使用 Text=“*” 指示错误出现的位置指示错误出现的位置【例例4-28】演示如何使用演示如何使用ValidationSummary控件显示控件显示错误信息摘要。错误信息摘要。参见示例参见示例第第04章章WebValidatorValidationSummary.aspx 784.4.3 使用验证组v在页面上控件比较多时,可以将不同的控件归为一在页面上控件比较多时,可以将不同的控件归为一组,组,ASP.NET在对每个验证组进行验证时,与同页在对每个验证组进行验证时,与同页的其他组无关的其他组无关v通过将要分在同一组的所有控件的通过将要分在同一组的所有控件的 Validati
55、onGroup 属性设置为同一个名称(字符串)属性设置为同一个名称(字符串)即可创建验证组即可创建验证组 79【例例4-29】演示在演示在Button控件回发到服务器时,如何控件回发到服务器时,如何使用使用ValidationGroup属性指定要验证的控件。属性指定要验证的控件。参见示例参见示例第第04章章WebValidatorValidateGroup.aspx 804.4.4 禁用验证禁用验证的方法:禁用验证的方法:v设置设置 ASP.NET 服务器控件的属性服务器控件的属性(CausesValidation=false)来避开客户端和服)来避开客户端和服务器的验证,而不只是客户端验证务
56、器的验证,而不只是客户端验证 v禁用验证控件,即将控件的属性禁用验证控件,即将控件的属性Enabled设置为设置为false,使它根本不在页面上呈现并且不进行使用该,使它根本不在页面上呈现并且不进行使用该控件的验证控件的验证v如果要执行服务器上的验证,而不执行客户端的验如果要执行服务器上的验证,而不执行客户端的验证,则可以将单独验证控件设置为不生成客户端脚证,则可以将单独验证控件设置为不生成客户端脚本,即将其属性本,即将其属性EnableClientScript设为设为false 814.4.5 以编程的方式测试验证的有效性以编程的方式测试验证的有效性v测试常规错误状态测试常规错误状态u在代码中测试页的在代码中测试页的 IsValid 属性,如果为属性,如果为true则执则执行代码;否则不执行行代码;否则不执行 void Button
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论