web控件练习1.docx
- 文档编号:28226714
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:33
- 大小:254.82KB
web控件练习1.docx
《web控件练习1.docx》由会员分享,可在线阅读,更多相关《web控件练习1.docx(33页珍藏版)》请在冰豆网上搜索。
web控件练习1
实验5ASP.NET基本控件的使用
【实验目的】
(1)理解ASP.NETWeb控件的作用
(2)掌握最常用的几种ASP.NET控件的使用方法
(3)进一步提高界面设计的能力
【实验环境】
计算机软件:
WindowsXPProfessionalSP3/Windows7,VisualStudio2008
【知识要点】
在前面的实验中,我们已经陆续接触到了诸如标签、文本框、命令按钮这些最常用的ASP.NET控件,本实验我们将加深对它们的认识,并学习使用更多的ASP.NET控件。
1.控件概述
Web应用程序的开发,其核心是生成呈现给用户的Web页面,这些页面通常是由各类控件构成的。
1)Web控件的分类
用户通过各类控件与应用系统交互。
ASP.NET加强了控件的功能,特别是增强了控件在服务器端的处理能力。
ASP.NET的Web控件共包括四种类型:
(1)HTML控件
在ASP.NETWeb应用程序页面中,我们可以使用绝大多数用于HTML页面的标记符,也称HTML控件。
(2)HTML服务器控件
服务器控件是一种在服务器端完成的控件,服务器端在处理完控件动作后,再生成标准的HTML文件发送给客户端。
服务器控件在页中使用包含属性runat=“server”声明性标记标识。
因此,只要对原有的HTML控件添加runat=“server”属性就变成了HTML服务器控件,可以在服务器端通过其ID对其内容进行存取了。
(3)ASP.NET服务器控件
也称为ASP控件,是ASP.NET的核心内容之一。
ASP.NET服务器控件执行时在客户端表现为HTML,但具有更强的服务器端处理能力,从而在大多数情况下替代了传统的HTML控件。
除了功能更强、种类更多外,ASP.NET服务器控件克服了传统HTML控件在属性设置方面的缺点,可在服务器端通过程序预置。
(4)用户自定义控件
是开发人员自行创建的控件。
关于用户自定义控件,在实验5.8中将有专门介绍,本实验重点学习ASP.NET服务器控件。
2)ASP.NET服务器控件常用的属性和事件
编程使用控件时,主要工作是对控件的属性和事件进行处理。
所有呈现到浏览器的、具有可视化外观的ASP.NET服务器控件,都从WebControl类派生。
该类提供了所有ASP.NET服务器控件的通用属性、方法和事件。
WebControl类位于System.Web.UI.WebControls命名空间。
表5-1、表5-2给出了WebControl类常用的属性和事件,所有ASP.NET服务器控件都会继承这些属性和事件。
表5-1WebControl类常用的属性
属性名称
说明
AccessKey
快捷键
BackColor
控件的背景色
BorderColor
控件的边框颜色
BorderStyle
控件的边框样式
BorderWidth
控件的边框宽度
Controls
当前对象所包含的所有子控件
CssClass
控件所使用的级联样式表(CSS)类
Enabled
控件是否可用
EnableTheming
是否对此控件应用主题
EnableViewState
指示服务器控件是否向发出请求的客户端保持自己的视图状态以及它所包含的任何子控件的视图状态
Font
控件的字体属性
ForeColor
控件的前景色(通常是文本颜色)
Height
控件的高度
ID
控件的编程标识符
Parent
对该控件父控件的引用
SkinID
应用于当前控件的外观
ToolTip
当鼠标指针悬停在当前控件上时所显示的文本
Visible
控件是否可见
Width
控件的宽度
表5-2WebControl类常用的事件
事件名称
说明
DataBinding
当控件绑定到数据源时发生
Disposed
当控件从内存中被释放时发生,这是控件生存期的最后阶段。
Init
当控件被初始化时发生,这是控件生存期的第一步。
Load
当控件被加载到页面时发生
PreRender
在控件加载之后、呈现之前发生。
Unload
当控件从内存中卸载时发生
说明:
ØAccessKey属性的值为一个字母,在程序的运行中,同时按下Alt键和此键可将输入焦点移到此控件。
ØBorderStyle属性设置控件的边框样式,其值为一个BorderStyle枚举值(如:
NotSet:
不设置边框样式,默认、None:
无边框、Dotted:
虚线边框、Solid:
实线边框……)。
ØBorderWidth设置控件的边框宽度。
如果其值为一个整数,则其单位为像素,如果其值为整数加px,则其单位为点。
Ø有些ASP.NET服务器控件是容器控件,在其中可能包含多个子控件,这些子控件可通过一个ControlCollection对象类型的Controls属性来获取。
如要移除myControl控件的所有子控件,可使用下列代码:
for(inti=myControl.Controls.Count-1;i>=0;i--){
myControl.Controls.Remove(myControl.Controls[i]);}
ØFont属性包含多个子属性,如Bold、Italic、Name、Strikeout、Underline和Size等。
这些子属性在页面中声明时可使用Property-Subproperty形式(如Font-Size="10pt")进行访问,而编程时则可以使用Property.Subproperty形式(如Label1.Font.Underline=True)进行访问。
ØHeight和Width属性表示控件的高度和宽度,也有两种形式:
如果其值为一个整数,则其单位为像素;如果其值为整数加“%”,则表示其高度和宽度在容器中所占的百分比。
ØID是控件的编程标识符。
如果事先对此属性进行了设置,则可在程序中通过ID对控件的属性、事件和方法进行访问;如果没有事先指定该属性,也可通过其父控件的Controls属性获取对该控件的引用。
在实际应用中,可在页面“源”视图中直接修改代码来改变控件属性,也可以在“设计”视图中先选中控件,然后在集成开发环境的属性窗口中设置相关属性,还可以通过编程来对控件属性进行设置和修改。
3)事件驱动和事件处理
ASP.NET使用事件驱动模式进行处理,用户在浏览器上对ASP.NET控件所执行的任何操作都可能触发事件;服务器端代码响应事件,并运行存储在事件处理方法中的代码。
ASP.NET事件有数千个之多,所有ASP.NET事件都在服务器端进行处理,这与传统HTML控件事件的处理方式有本质区别。
(1)控件的划分
有些事件触发后立即发送到服务器,另一些事件则在触发后被存储,直到下一次页面回传到服务器时再处理,这样可以提高处理的效率。
如果按客户端事件是否需要回传到服务器进行处理来划分控件,ASP.NET控件可分为两类:
一些控件本身就代表对一种操作的选择,主要用于处理单击事件。
如:
Button控件、Calendar控件、DataGrid控件、DataList控件、FileUpload控件、GridView控件、ImageButton控件、ImageMap控件、LinkButton控件、Menu控件和Repeater控件等。
当用户单击这些控件上的交互部分(如这些控件上的按钮、超链等)时,总会引起页面的回传。
还有一些控件一般用于对数据的操作或选择。
操作数据往往需要一个过程,也往往是在操作最终确认后才需要回传服务器进行处理。
这类控件包括CheckBox控件、CheckBoxList控件、DropDownList控件、ListBox控件、RadioButtonList控件、RadioButton控件和TextBox控件等。
后一类控件都包含一个AutoPostBack属性,默认情况下该属性值为false。
当AutoPostBack属性值为false时,既使这些控件中的内容被修改了,也不会将页面回送服务器;而是等到有其他控件触发了需要回送服务器的事件后,这些控件的事件处理程序才会被“顺带”地执行。
但如果将这类控件的AutoPostBack属性改为true,当控件内容改变时,也会自动将页面回送到服务器进行处理。
(2)事件的处理函数
一般情况下,ASP.NET事件的处理函数都会有两个参数,并且无返回值。
第一个参数表示触发当前事件的对象,按惯例被称为sender。
大多数情况下是不需要操作此参数的,但作为通用的事件处理函数,传递此参数是必要的;第二个参数被称为事件参数,包含了与事件相关的特殊信息。
其实大多数事件处理函数并不需要传递事件信息,对于这些事件,此参数类型为EventArgs。
EventArgs不包括任何属性,表示不包含任何事件信息。
对于那些包含事件信息的事件,其处理函数的第二个参数是从EventArgs派生的类型。
例如:
Button控件的Command事件处理函数,其原型为:
protectedvoidCommandBtn_Click(objectsender,CommandEventArgse)
其第二个参数为CommandEventArgs类型,包含CommandName和CommandArgument等属性。
2.一般控件
1)Lable控件
Label控件用来显示用户不能编辑的静态文件,它本身的Text属性包含了要显示的文本字符串。
编程控制所要显示的文本是使用Label控件的根本原因,如果文本内容不需要修改,还是应该直接使用传统的HTML文本,以减少服务器端的处理。
2)Button控件
Button控件是最常用的交互控件之一。
当单击Button控件时既可以触发Click事件,也可以触发Command事件。
当为Button控件指定了CommandName属性时,通常使用Command事件进行处理。
表5-3Button控件特有的属性和事件
属性名称
说明
CommandName
Button控件命令名,该命令名可传递给Button控件的Command事件,并在事件处理函数中进行相应的处理
CommandArgument
命令可选参数,该参数与CommandName一起被传递到Command事件
事件名称
说明
Click
在单击Button控件时发生
Command
在单击Button控件时发生
如果一个网页上有多个Button控件,它们有大量相似的处理操作,为每个Button控件分别编制单击事件处理函数比较麻烦,一个好的选择是:
为每个Button控件指定不同的命令名和相同的Command事件处理函数,并在Command事件处理函数中判断单击的是哪个Button控件并进行相应的处理。
在后续的实验中,我们将介绍这方面的例子,
与Button控件类似的控件还有LinkButton和ImageButton。
它们的功能与Button控件相同,都可以对单击事件做出响应,只是LinkButton控件的外观为一个超链,而ImageButton的外观为一个图片。
3)TextBox控件
作为最常用的交互控件之一,TextBox控件用于接受用户的输入,也可以显示只读文本。
默认情况下TextBox控件中的内容被修改后不会将页面回送服务器。
但如果将TextBox控件的AutoPostBack属性改为true,当TextBox控件失去输入焦点时,如果其内容已改变,则会将页面回送到服务器进行处理。
如:
在实验5.2.3中,我们将txtFibonaNumber文本框的AutoPostBack属性设置为True。
表5-4TextBox控件特有的属性和事件
属性名称
说明
AutoPostBack
当用户在TextBox控件中按Enter或Tab键、TextBox控件将失去输入焦点时。
本属性确定当控件失去输入焦点时,页面是否自动回传到服务器进行处理。
默认为false
Columns
文本框的显示宽度(以字符为单位)
MaxLength
文本框中最多允许输入的字符数
ReadOnly
TextBox控件的内容是否只读。
默认为false
Rows
多行文本框中显示的行数
Text
文本内容
TextMode
控件的行为模式(单行SingleLine、多行MultiLine或密码Password)
ValidationGroup
当前控件回发到服务器时导致验证的控件组
Wrap
多行文本框内的文本内容是否自动换行
事件名称
说明
TextChanged
当向服务器发送时,如果文本框的内容已更改,则触发此事件。
4)HyperLink控件
HyperLink控件与HTML控件
与Button控件不同,在客户端点击HyperLink控件后不向服务器回送页面,而是直接导航到目标URL。
表5-5HyperLink控件特有的属性
属性名称
说明
ImageUrl
HyperLink控件所显示的图像的路径
NavigateUrl
单击HyperLink控件时链接到的URL
Target
单击HyperLink控件时显示链接到的网页内容的目标窗口或框架
Text
HyperLink控件的文本标题(只有当图片无效时才显示文本内容)
说明:
默认情况下,单击HyperLink控件时,目标网页加载到当前浏览器窗口或当前框架内,但可以通过改变Target属性来改变加载内容的目标窗口或框架。
Target属性的值可以是以下特殊值之一:
Ø_blank:
将内容呈现在一个没有框架的新窗口中;
Ø_parent:
将内容呈现在当前框架的父框架中,如果没有父框架,则此值等同于_self;
Ø_search:
在搜索窗格中呈现内容;
Ø_self:
将内容呈现在当前框架中(默认值);
Ø_top:
将内容呈现在当前整个窗口中(忽略原有的框架)。
如:
在实验5.3.2的Logo.aspx页面设计中,我们是这样设置“注销”超链接控件的:
HyperLinkID="hyperlinkLogout"runat="server" NavigateUrl="AdminLogin.aspx"Target=_topFont-Size=14px>注销
HyperLink>
除以上特殊值外,Target属性的值还可以是目标框架的名称。
注意:
在访问域名网址时,NavigateUrl若写成:
,则默认为相对路径,会在网址前附加项目路径,使访问无效。
应写成:
5)Image控件
Image控件用于显示一个图片。
Image控件本身不包含响应用户交互的事件,如果需要将图片作为按钮来使用,可使用实验5.3.1中用到过的ImageButton控件。
表5-6Image控件特有的属性
属性名称
说明
AlternateText
当图像不可用时,Image控件中显示的替换文本。
ImageAlign
Image控件相对于网页上其他元素的对齐方式。
ImageUrl
要显示的图像的URL。
3.选择控件
1)CheckBox控件
当允许用户在有限种选项中多选时,使用复选框。
CheckBox控件显示一个复选框,提供True或False两种状态供用户选择。
即使排列在一起作为多项选择,各CheckBox控件之间的属性和事件也是相互独立的。
与之不同的是CheckBoxList控件,它是一个多项选择复选框组,有统一的属性设置和事件处理。
表5-7CheckBox控件特有的属性和事件
属性名称
说明
AutoPostBack
当用户单击CheckBox控件而改变了它的选中状态时,是否自动回发到服务器
Checked
是否已选中CheckBox控件
Text
显示在网页上的CheckBox文本标签
TextAlign
文本标签的对齐方式(Left:
文本标签显示在控件的左侧)
事件名称
说明
CheckedChanged
当向服务器回送页面时,如果Checked属性的值已更改,则触发此事件
2)RadioButton控件
当只允许用户在有限种选项中单选时,使用单选按钮。
RadioButton控件用来显示一个单选按钮。
整个页面上的所有RadioButton控件按照GroupName属性进行分组,GroupName属性相同的为一组,同一组中同时只能有一个RadioButton控件可以被选中。
ASP.NET也提供了一个将多个RadioButton控件封装在一起的RadioButtonList控件。
3)ListBox控件
ListBox控件是一种列表选择控件。
它将所有可选项列在列表框内,如果可选项太多,列表框会出现滚动条。
ListBox控件中的项可单选也可多选;ListBox控件中的列表项既可以通过编程设置,也可以在设计时指定,还可以通过与数据源绑定来获得。
表5-8ListBox控件特有的属性和事件
属性名称
说明
Items
列表项的集合
Rows
控件中显示的行数
SelectedIndex
列表中选定项的最低序号索引
SelectedItem
ListBox控件中索引最小的选定项
SelectedValue
ListBox控件中选定项的值
SelectionMode
ListBox控件的选择模式(Single/Multiple)
Text
与SelectedValue属性的值相同
事件名称
说明
SelectedIndexChanged
当ListBox控件的选定项在信息发往服务器之间变化时发生
TextChanged
当Text和SelectedValue属性更改时发生
SelectionMode属性在Single和Multiple之间改变,可控制ListBox是只能单选还是可以多选。
多选的方法是:
按住Ctrl键的同时分别在多个选项上单击鼠标。
如果ListBox控件只允许一个选项,则SelectedIndex属性可确定列表中当前选定项的索引,如果支持多个选项,则SelectedIndex属性可确定选定项的最小索引值。
4)DropDownList控件
DropDownList控件也是一种列表选择控件,与ListBox控件非常相似。
但DropDownList控件正常情况下只显示一项,单击控件上的按钮时才弹出下拉式列表显示其余的项。
另外,DropDownList控件只能单选。
与ListBox控件一样,DropDownList控件各选项既可以通过编程设置,也可以在设计时指定,还可以通过与数据源绑定来获得。
4.Panel控件
Panel控件是一个容器控件,用于包含其他控件,它提供以下几个功能:
控制所包含控件的可见性、控制所包含控件的外观及方便以编程方式生成控件。
可以将整个页面划分为几个功能区,每一个功能区为一个包含多个其他控件的Panel控件。
这样,便于对各组控件进行整体控制,包括隐藏与显示等,给编程带来了更大的灵活性与简便性。
表5-9Panel控件特有的属性
属性名称
说明
BackImageUrl
控件背景图像的URL
Direction
Panel控件中所包含控件的排列方向(NotSet:
未设置内容方向,默认值;LeftToRight:
内容方向从左到右;RightToLeft:
内容方向从右到左)
HorizontalAlign
Panel控件内容的水平对齐方式(Center:
容器的内容居中;Justify:
内容均匀展开,与左右边距对齐;Left:
内容左对齐;NotSet:
未设置水平对齐方式,默认值;Right:
内容右对齐)
ScrollBars
指定Panel控件中滚动条的可见性和位置(None:
不显示任何滚动条;Horizontal:
只显示水平滚动条;Vertical:
只显示垂直滚动条;Both:
同时显示水平滚动条和垂直滚动条;Auto:
根据需要自动显示滚动条。
)
Wrap
Panel控件中的内容是否换行
5.FileUpload控件
FileUpload控件提供了丰富灵活的文件处理功能。
需要明确的是:
用户选择了要上载的文件后,FileUpload控件不会自动将该文件上传到服务器,程序员必须显式地控制文件的提交;文件上传到服务器后也不会自动保存,仍然需要程序员编程进行处理。
表5-10FileUpload控件特有的属性和方法
属性名称
说明
FileBytes
从使用FileUpload控件上传的文件返回一个字节数组
FileContent
Stream对象,它指向上传的文件。
FileName
上传文件的名称(不包含此文件在客户端的文件路径)
HasFile
FileUpload控件是否包含文件
PostedFile
上传文件的基础HttpPostedFile对象
方法名称
说明
Focus
为控件设置输入焦点
SaveAs
将上传文件的内容保存到Web服务器上的指定路径
说明:
首先可以通过HasFile属性判断是否有上传的文件。
如果有上传文件,就可以通过FileName属性获得上传文件的名称。
处理文件可以有多种方法。
可以调用FileUpload控件的SaveAs方法将上传文件的内容保存到Web服务器上的指定路径;也可以通过FileBytes属性获得文件的二进制内容,并将内容保存到字节数组中;还可以通过FileContent属性将上传的文件当做流来处理。
后两种方法可对文件内容进行直接操作,虽然操作复杂,但可以得到更丰富的功能,如将文件内容直接存储到数据库中。
FileUpload控件还提供了一个PostedFile属性,它的类型是HttpPostedFile对象,通过它也可以对上传的文件进行操作,其成员和方法如表5-11所示。
表5-11HttpPostedFile对象的成员和方法
成员名称
说明
ContentLength
上传文件的大小(以字节为单位)
ContentType
上传文件的MIME内容类型
FileName
上传文件在客户端的完全限定名称(包含此文件在客户端的文件路径)
InputStream
Stream对象,它指向上传的文件(与FileUpload控件的FileContent属性相同)
方法名称
说明
SaveAs
将上传文件的内容保存到Web服务器上的指定路径
6.验证控件
对一个实用的网站,与用户的交互是必不可少的,对用户的输入进行验证也是必要的。
ASP.NET验证控件的引入,大大减轻了编程人员进行用户输入验证的负担。
而且验证控件可以在客户端直接拦截错误,相应地减少了与服务器的交互次数,从而提高了系统的服务质量。
ASP.NET提供了以下6种验证控件。
1)RequiredFieldValidator控件
本控件保证用户必须输入指定字段的值,即保证输入项不能为空。
InitialValue是RequiredFieldValidator控件特有的属性,表示输入控件的初始值,只有输入控件在失去焦点时的值与此值相匹配时,验证才失败。
2)CompareValidator控件
本控件将用户输入到当前控件的值与输入到其他控件的值或常数值进行比较。
除了确保值的正确性之外,CompareValidator控件还具有保证输
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- web 控件 练习