第4章ASP.NET服务器控件和客户端脚本课件.ppt

上传人:牧羊曲112 文档编号:4096010 上传时间:2023-04-04 格式:PPT 页数:85 大小:1.93MB
返回 下载 相关 举报
第4章ASP.NET服务器控件和客户端脚本课件.ppt_第1页
第1页 / 共85页
第4章ASP.NET服务器控件和客户端脚本课件.ppt_第2页
第2页 / 共85页
第4章ASP.NET服务器控件和客户端脚本课件.ppt_第3页
第3页 / 共85页
第4章ASP.NET服务器控件和客户端脚本课件.ppt_第4页
第4页 / 共85页
第4章ASP.NET服务器控件和客户端脚本课件.ppt_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《第4章ASP.NET服务器控件和客户端脚本课件.ppt》由会员分享,可在线阅读,更多相关《第4章ASP.NET服务器控件和客户端脚本课件.ppt(85页珍藏版)》请在三一办公上搜索。

1、第4章 ASP.NET服务器控件和客户端脚本,4.1 控件概述,4.2 HTML服务器控件,4.3 标准控件,4.4 验证控件,4.5 用户控件与自定义服务器控件,4.6 用JavaScript处理页面和服务器控件,4.7 客户端回调,4.8 文件的上传和邮件发送,4.9 综合应用,4.1 控件概述,HTML服务器控件公开至服务器的HTML项,控件的对象模型与相对应的HTML元素有非常密切的关系。Web服务器控件并不一一对应至HTML元素,而是更抽象的控件。验证控件用来检测用户输入的数据,避免无谓的服务器环回。用户控件提供在多个网页中重复使用设计好的接口一种方式。自定义服务器控件可以像拖曳其他

2、Web标准控件那样方便地使用它。,4.2 HTML服务器控件,HTML标记 HTML服务器控件HTML服务器控件主要特点:对象模式,服务器执行后将其转译成HTML标记及属性,再发给浏览器拥有处理客户端script的能力HTML标记有在浏览器执行的事件(如onclick)HTML服务器控件则还有在服务器执行的事件(如onserverclick)HTML服务器控件支持viewstateHTML服务器控件与验证控件整合应用,达到验证窗体数据的目的HTML服务器控件支持HTML4.01与CSS(层次样式表)允许用户自定义属性,System.Web.UI.HTMLControl名称空间的结构,HtmlC

3、ontainerControl,HtmlImage,HtmlInputControl,HtmlInputButton,HtmlInputCheckBox,HtmlInput,File,HtmlInputHidden,HtmlInputImage,HtmlInputRadioButton,HtmlInputText,HtmlControl,IddisabledVisibleTagName,InnerHtmlInnerText,TypeValue,ServerClickServerChange,HTML服务器控件与HTML标记的对应表示,HTML服务器控件的应用,【例4.1】使用HTML服务器控件

4、完成一个表单,实现简单的用户登录和提交留言。服务器端编程获取用户所填写的内容并输出。页面设计:页面中放置两个文本框(User(ID值)用于输入用户名、Password用于输入密码),两个多行文本框(messeage用于显示登录或留言信息、comment用于输入留言信息),两个按钮(BtnLogin表示登录单击的“确定”、BtnOK表示发表留言的“提交”)。网页界面如图4.3所示。前台文件example4-1.aspx实现表单的页面部分,后台文件example4-1.aspx.cs实现事件代码处理部分。,图4.3 example4-1的界面,HTML服务器控件的应用,本例网页example4-1

5、.aspx页面代码。页面后台example4-1.aspx.cs文件的代码。,按钮BtnLogin的单击事件BtnLogin_ServerClick用于判断用户是否输入正确的用户名和密码。如果正确登录,则在多行文本框message中显示“成功登录系统”,否则显示“用户名或密码错误”。按钮BtnOK的服务器端单击事件为BtnOK_ServerClick,用来接受多行文本框comment的信息,并显示在message中。程序运行结果如图4.4所示。,图4.4 例4.1运行结果,4.3 Web服务器控件,以开头,结尾拥有更多功能与特殊目的的控件,(如calendar、AdRotator)具有更丰富的

6、对象,提供类型安全程序设计功能与浏览器无关部分控件可以通过使用模板自定义输出结果(如Repeater、Datalist及GridView控件部分控件可以指定在数据或选取项改变时,将数据返回至服务器,无须等待浏览器执行发送的操作,如DropDownList控件除了少数的HTML服务器控件外,可以完全代替HTML服务器控件。声明举例:,Web服务器控件的层次结构,Web服务器控件标准控件,基本控件Label、Literal、TextBoxButton、LinkButton、ImageButtonCheckBox、CheckBoxList,RadioButton、RadioButtonList,Li

7、stBox、DropDownListHyperLinkTable增强控件(多信息控件)Calendar,AdRotator,XML,MultiView、View,Image、ImageMap,Wizard,相关概念,环回每项需要处理的动作必须由窗体传送给服务器处理,然后再返回给浏览器。这一过程叫“环回(Round Trip)”或“往返行程.重建网页每一次环回都会使得网页重新生成。网页是无状态的,即网页变量与控件的数据值并不会保留在服务器上。内部事件集服务器控件提供一组有限的内部事件集,并且仅限于鼠标按键类型的事件。不要触发那些经常会发生的事件(onmouseover)事件参数所有事件都会传递两

8、个参数,第一个参数内含与事件相关信息的事件对象(object sender),第二个参数是事件类型相关的参数信息(EventArgs e)回传与非回传事件发生在服务器控件中的变动事件会被捕捉,但是不会立即被提交。,Web页面请求及服务器响应的过程,4.3 标准控件,1服务器控件的基本语法ASP.NET服务器控件的基本语法格式如下:下面的关于某个TextBox控件的两种不同的写法是等价的:请输入姓名:2服务器控件的属性3服务器控件的事件,例:注册表单,4.3.1 输入与显示控件,1TextBox控件TextBox控件是用得最多的控件之一,该控件显示为文本框,可以用来显示数据或者输入数据。Text

9、Box控件定义的语法示例如下:,表4.5 TextBox控件的常用属性、事件和方法,2Label控件Label 控件用于在Web页面上显示文本。其控件定义的语法示例如下:,表4.6 Label控件的常用属性,3Literal控件Literal控件的工作方式类似于Label控件。用于在浏览器上显示在整个过程中不发生变化的文本。其控件定义的语法示例如下:。,表4.7 Literal控件的常用属性,4.3.2 按钮控件,1Button控件2LinkButton控件3ImageButton控件作用:提交页面相关事件:(1)Page_load事件(2)Click事件。,表4.8 Button控件的常用属

10、性、事件和方法,4.3.3 选择和列表控件(webcontrol1),1RadioButton控件【例4.2】页面上的一组RadioButton控件可以定义如下:,表4.10 RadioButton控件的常用属性和事件,2RadioButtonList控件RadioButton控件优于RadioButtonList控件的一个方面是,可以在RadioButton控件之间放置其他项(文本、控件或图像)。虽然多个RadioButton控件也可以组成单选按钮组以实现互斥选择,但有多个选项供用户进行选择时,使用RadioButtonList控件更加方便。RadioButtonList控件定义示例如下,男

11、女 保密,表4.11 RadioButtonList控件的常用属性和事件,RadioButtonList控件的Items集合的成员和列表中的每一项对应,要确定选中了哪些项,应测试每项的Selected属性。ListItem的基本属性如表4.12所示。,表4.12 ListItem的基本属性,3CheckBox控件CheckBox控件定义示例如下:,4CheckBoxList控件【例4.3】CheckBoxList控件定义如下:琴棋 书 画CheckBoxList控件的SelectedIndexChanged事件。,5DropDownList控件【例4.4】DropDownList控件在Web页

12、面上呈现为下拉列表框,它允许用户从预定义的多个选项中选择一项。在选择前,用户只能看到第一个选项,其余的选项都“隐藏”起来。通过设置该控件的高度和宽度(以像素为单位),可以设定控件的大小,但是不能控制该列表拉下时显示的项目数。DropDownList控件定义示例如下:您的学历:博士 硕士本科,表4.14 DropDownList控件的常用属性和事件,6ListBox控件【例4.5】ListBox控件定义示例如下:身份:已工作 大学生 中学生/中专技校 以上都不是ListBox控件的SelectedIndexChanged事件。,7BulletedList控件,以下是一个BulletedList控

13、件的定义示例:第一项第二项,表4.15 BulletedList控件的属性,表4.16 BulletStyle枚举值列表,4.3.4 HyperLink控件,HyperLink服务器控件在Web页上创建超级链接,使用户可以在应用程序中的页之间移动跳转到其他页面,相当于HTML中的元素。HyperLink控件定义的语法格式如下:网站服务条款此行代码定义一个超级链接。表4.17列出了HyperLink控件的常用属性。,表4.17 HyperLink控件的常用属性,4.3.5 Table控件,动态地创建一个Table包含三个步骤:【例4.6】(1)创建TableRow对象以表示表中的行。(2)创建T

14、ableCell对象,表示行中的单元格,并将单元格添加到行中。(3)将TableRow添加到Table控件的Rows集合中。,声明语法:AdvertisementFile:获取或设置包含广告信息的XML广告调度文件的相对或绝对地址Target:广告所链接的网页在哪个框架或窗口打开_self/_blank/_parent/_topOnAdCreated:在AdRotator控件创建后,网页提交前会触发此事件,其参数为AdCreatedEventArgsAdCreatedEventArgs的属性AdProperties:目前显示的广告的相关信息AlternateText:显示广告的替换文本Imag

15、eUrl:目前广告的图片源地址NavigateUrl:会把用户定向到哪个网址Impressions:广告的重要等级KeyWords:广告的类,4.3.6 AdRotator控件,可扩展标记语言XML,可扩展标记语言XML(eXtensibleMarkup Language)是W3C组织于1998年2月发布的标准XML专门用来描述文本的结构,而不是用来描述如何显示文本;XML没有一套固定的标记;XML区分大小写;XML文档分层嵌套形成一棵标记树,只有根标记,每个元素由一个开始标记和一个结束标记组成,所有属性必须用引号表示。,表4.21 在广告文件中使用的XML标签,下面是一个XML广告文件ad.

16、xml的例子:【例4.7】/image/phei.png http:/电子工业出版社 门户 20/image/sohu.gif http:/搜狐 门户 80/image/njnu.jpg http:/南京师范大学 大学 50,4.3.7 Calendar控件,主要功能:(1)显示一个日历,该日历会显示一个月份。(2)允许用户选择日期、周、月。(3)允许用户选择一定范围内的日期。(4)允许用户移到下一月或上一月。(5)以编程方式控件选定日期的显示。Calendar控件的最简单形式如下:,图4.15 Calendar控件,1在Calendar控件中选择日期【例4.8】Calendar控件有4种日期

17、获取模式,用户可以选择一天、一周或一个月。通过设置控件的SelectionMode属性来实现。,表4.23 Calendar控件的SelectionMode属性,2控制Calendar控件的外观许多TableItemStyle类型的属性用于控制日历每个部分的样式。,表4.24 Calendar中TableItemStyle类型的属性,除TableItemStyle类型的属性,还有几个可读写的Boolean类型属性,它们也用于控制日历的外观,,表4.25 Boolean 类型的属性,Calendar控件示例,ToDayDayStyle,SelectedDayStyle,WeekendDaySty

18、le,DayStyle,OtherMonthDayStyle,TitleStyle,NextPrevStyle,SelectMonthText属性,SelectWeekText属性,DayHeaderStyle,3Calendar控件编程【例4.9】(1)SelectionChanged事件。当用户在Calender控件中选择一天、一周或整个月份时,将触发SelectionChanged事件。以编程方式选择时,并不触发该事件。该事件处理程序传递一个EventArgs类型参数。前面在例4.9中,已经给出此事件的示例。(2)DayRender事件。Calendar控件不直接支持日期绑定,但可以修改

19、单个日期单元格的内容和格式。这样可从数据库中获取数据,以便进行一些处理后把它们置于指定的单元格中。在Calendar控件呈现到客户端浏览器之前,将组成创建该控件的所有组件。随着创建每个单元格,将引发DayRender事件。可以捕获该事件。DayRender事件处理程序接收两个DayRenderEventArgs类型的参数。该对象有两个属性,它们可以用编程方式读取。Cell:表示要呈现的单元格的表格单元格对象。Day:表示呈现在单元格中日期的CalendarDay对象。(3)VisibleMonthChanged事件。Calendar控件还提供了一个事件VisibleMonthChanged以确

20、定用户是否更改了月份。,图4.18 在Calendar控件中自定义特别日,4.3.8 Image和ImageMap控件,1Image控件图像服务器控件Image可以在Web窗体页上显示图像,并用服务器端的代码管理这些图像。Image控件定义格式如下:Image控件有下列常见属性:(1)AlternateText:为图像提供替代文本(辅助功能要求)。(2)DescriptionUrl:用于提供指向包含该图像详细描述的页面的链接(复杂的图像要求可访问)。(3)GenerateEmptyAlternateText:为AlternateText属性设空字符串值。(4)ImageAlign:用于将图像和

21、页面中其他HTML元素对齐。可能的值有AbsBottom、AbsMiddle、Baseline、Bottom、Left、Middle、NotSet、Right、TextTop和Top。(5)ImageUrl:用于指定图片的URL。,2ImageMap控件ImageMap控件定义格式如下:ImageMap控件的主要属性包括如下。(1)HotSpotMode:热点模式,取值为枚举System.Web.UI.WebControls.HotSpotMode,值如表4.26所示。,表4.26 HotSpotMode枚举值,【例4.10】,(2)HotSpots:该属性对应System.Web.UI.We

22、bControls.HotSpot对象集合。HotSpot类是一个抽象类,有CircleHotSpot(圆形热区)、RectangleHotSpot(方形热区)、PolygonHotSpot(多边形热区)3个子类。实际应用中,可以使用上面3种类型来定制图片的热点区域的形状。(3)AccessKey:用于指定导向ImageMap控件的键。(4)AlternateText:为图像提供替代文本(辅助功能要求)。(5)DescriptionUrl:用于提供指向一个页面的链接,该页面包含对该图像的详细描述(复杂的图像要求能被理解)。(6)GenerateEmptyAlternateText:为Alter

23、nateText属性设空字符串值。(7)ImageAlign:用于和页面中其他HTML元素对齐。可能的值有AbsBottom、AbsMiddle、Baseline、Bottom、Left、Middle、NotSet、Right、TextTop和Top。(8)ImageUrl:用于指定图像的URL。(9)TabIndex:设置ImageMap控件的Tab顺序。(10)Target:用于在新窗口中打开页面。ImageMap控件支持Click事件,在用户对热点区域单击时触发,通常在HotSpotMode为PostBack时用到。,4.3.9 MultiView和View控件【例4.11】,View控

24、件是视图控件,MultiView控件是多视图控件,两者都属于容器控件,View控件是一个Web控件的容器,而MultiView控件又是View控件的容器,因此两者一般一起搭配运作。在MultiView控件中可以拖曳多个View控件,而View控件内包含了任何需要显示在页面中的内容,存放一般ASP.NET服务器控件的,如Image、TextBox等。虽然MultiView中可包含多个View控件,但页面一次只能显示一个视图,因此也只有一个View控件区域会被显示。MultiView通过ActiveViewIndex属性值来决定哪个View要被显示,程序也是利用ActiveViewIndex属性设

25、置来切换不同的View,View和MultiView控件格式如下:View和MultiView控件继承自System.Web.UI.Control类。MultiView控件有一个类型为ViewCollection的只读属性View。使用该属性可获得包含在MultiView中的View对象集合。与所有的.NET集合一样,该集合中的元素被编入索引。MultiView控件包含ActiveViewIndex属性,该属性可获取或设置以0开始的,当前活动视图的索引。,表4.27列出了MultiView控件的4个CommandName字段。为按钮的CommandName属性赋值,能够实现视图导航。例如,将B

26、utton、ImageButton或LinkButton控件的CommandName属性设置为NextView,单击这些按钮后将自动导航到下一个视图,而不需要额外的代码。开发者不需要为按钮编写单击事件处理程序。,表4.27 MultiView控件的CommandName字段,4.3.10 Wizard控件【例4.12】,(1)收集多个步骤中的相关信息。(2)用于收集用户输入的大型Web网页可分割成较小的逻辑步骤。(3)允许线性或非线性地导航各个步骤。Wizard控件可以提供良好的流程导航与步骤指引,让用户很明确地知道有哪些步骤,并可建立程序化逻辑来处理或控制比较复杂的步骤。Wizard控件可区

27、分成4大区域。(1)向导步骤(WizardStep)区域:Wizard控件使用多个步骤来描绘用户输入的不同部分。每个步骤的内容添加在标记中,所有的又都包含在标记中。实际应用时,每次只能显示一个定义的内容。(2)标题(Header)区域:用于在步骤顶部提供一致的信息,此项是可选元素。(3)侧栏(SideBar)区域:此项也是可选元素,通常显示在向导左边,包含所有步骤的列表,并提供在各个步骤间的跳转。(4)导航按钮(Navigation)区域:是Wizard内置导航功能,它会根据步骤类型(StepType)设置值的不同,而呈现不同的导航按钮。,每个WizardStep步骤都会有个StepType属

28、性,它最主要的作用是决定每个步骤中的导航Button按钮会如何被显示,StepType的类型说明如表4.28所示。,表4.28 StepType类型,Wizard控件的所有外观特征几乎都可以通过样式和模板来自定义,包括各种各样的按钮和链接、标题和页脚、工具条和WizardStep。Wizard向导控件所支持的样式如表4.29所示。,表4.29 Wizard控件样式设置表,Wizard控件除了可调整样式外,还可调整其外观属性,如果您想更进一步定制Wizard控件默认的样式或外观等,可以通过其模板编辑功能来达成深入的定制,Wizard控件提供了5种模板编辑,如表4.30所示。,表4.30 Wiza

29、rd控件模板类型,Wizard控件的属性非常多,表4.31列出了常用属性。,表4.31 Wizard控件的常用属性,Wizard支持的事件如表4.32所示。,表4.32 Wizard支持的事件,Wizard控件包含3个特别有意思的方法,如表4.33所示。,表4.33 Wizard控件的方法,4.4 验证控件,ASP.NET封装了6个验证控件,能处理常见的验证情况,开发者使用这些验证控件,无需编写代码即可轻松的在页面上实现验证功能。,客户端验证和服务端验证,对于验证中的事件序列,有两种情况:(1)若客户端支持JScript且验证控件的EnableClientScript=true,则在客户端和服

30、务器上执行验证。(2)如果上面两个条件的任何一个不满足,则只在服务器上执行验证。如果在客户端上执行验证,则在被验证的控件丢失焦点时进行验证。(一般是在单击Submit按钮之前进行该操作)。如果验证失败,则不会发送任何内容给服务器,但验证控件将仍然通过使用JavaScript显示关于失败的文本消息。当由服务器接收时,执行另一个验证。如果页面通过验证,则页面继续执行它的其他任务。如果存在失败,则将Page.IsValid设置为False,然后页面执行脚本,但如果程序员检查Page.IsValid状态,则可以停止这些操作。页面上的数据控件将不会执行任何写入任务。然后,使用验证错误消息重新构建页面,并

31、且以回送来响应。比较安全的验证形式是服务器端验证。验证总是在服务器上执行,无论是否执行客户端验证。这就防止了电子欺骗(黑客可借此伪造一个有效的服务器回送,从而绕开客户端验证)。添加客户端选项可节省一些时间,因为如果在客户端验证中存在验证失败,则不需要建立来回的过程。,验证操作的基本概念,验证多个条件将多个验证控件附加到页面上的一个输入控件,只有用户输入的数据通过所有验证才视为有效。显示验证错误可以使用Page对象的IsValid属性来判定所有验证控件是否通过验证测试错误信息可以直接就地显示在页面上(Text/ErrorMessage),也可以集中通过ValidationSummary控件显示(

32、ErrorMessage)。,验证控件的基本属性,ControlToValidate:要验证的输入控件的ID。Enabled:指示是否启用验证控件。IsValid:指示关联的输入控件是否通过验证。ErrorMessage:要显示于ValidationSummary控件中的信息。Text:验证控件本身所显示的错误信息Display:指定验证控件中错误信息的显示行为。None:验证控件不会显示在网页上。Static:验证控件的内容总要占据页面空间Dynamic:无错误时,验证控件不会占用页面空间SetFocusOnError:将页面的焦点放置在产生错误的控件EnableClientScript:该

33、属性默认为True,表示允许客户端验证。,验证控件的特殊属性,RequiredFieldValidator:务必输入数据验证InitalValue:初始值在用户至少尝试了一次提交表单或在表单字段中输入、移除数据后才执行客户端验证CompareValidator:匹配特定值或数据类型验证ControlToCompare:要用来比较的控件IDValuetoCompare:要用来比较的值Operator:比较操作符Type:比较数据类型RangeValidator:数据范围验证MaximumControl:验证范围最大值的控件IDMinimumControl:验证范围最小值的控件IDMaximumV

34、alue:验证范围最大值MinimumValue:验证范围最小值Type:数据类型RegularExressionValidator:格式验证ValidationExpression:输入串要匹配的正则表达式,比较操作符,常用正则表达式字符及其说明,常用正则表达式字符及其说明(续),CustomValidator控件【例4.13】,OnServerValidate服务器端验证事件所调用的自定义验证函数名。Sender:产生事件的对象ServerValidateEventArgs:EventArgs类型的对象,含有两个属性(Value:要验证的用户输入的值,IsValid:用于设置验证的返回结果

35、),CustomValidator控件特殊的属性,ClientValidationFunction为验证所调用的客户机端自定义脚本函数名Source:要验证的控件名称Argument:含有两个属性(Value:要验证的用户输入的值,IsValid:用于设置验证的返回结果)EnableClientScript:设置是否启用客户端验证使用客户端验证的好处是能够实时反应错误,其运作模式如下:当用户在控件中输入数据并欲移往其它控件时,会立即调用用户自定义函数来进行验证当用户按下“提交”按纽尝试将网页传送至服务器时,网页上的所有验证控件会执行各自自定义的函数来进行验证。,4.4.7 Validation

36、Summary控件【例4.14】,ValidationSummary控件支持下列属性。(1)DisplayMode:用于指定如何格式化错误信息。可能的值有BulletList、List和SingleParagraph。(2)HeaderText:用于在验证摘要上方显示标题文本。(3)ShowMessageBox:用于显示一个弹出警告对话框。(4)ShowSummary:用于隐藏页面中的验证摘要。可以将验证错误信息只显示在ValidationSummary验证总结控件中,而在其他的验证控件位置不显示出错的文本消息。通过设置验证控件的Display属性为None值来实现这种隐藏。,ErrorMes

37、sage属性和Text属性。(1)如果有验证失败的情况,通常是在输入控件丢失焦点时,Text值会出现在页面上验证控件所在的位置。(2)如果有验证失败的情况,一般是在单击具有CausesValidation=true的Submit按钮时,ErrorMessage值会出现在ValidationSummary控件中。ValidationSummary控件出现在页面上的回送操作中,并且显示一组错误消息,这些消息来自于IsValid=false的所有验证控件。根据在DisplayMode中的设置,可以将这些错误消息安排为列表、段落或项目符号列表。此外,可以在消息框中显示,通过ShowMessageBox

38、=true/false设置。再次声明,ValidationSummary控件自身实际上不执行任何验证;它没有ControlToValidate属性。,4.4.8 关闭客户端验证功能,(1)编程方式protected void Page_Load(object sender,EventArgs e)foreach(BaseValidator Bv in page.Validators)Bv.EnableClientScript=false;(2)设置验证服务器控件的EnableClientScript属性为False,从而阻止控件发送在客户机上执行验证的JavaScript函数,使验证检查在服务

39、器上进行。该属性默认为True。此属性的用法如下:,4.4.9 验证组【例4.15】,在页面设计时有时希望同时验证几个控件,可以将页面上的验证控件归为一组,创建一个验证组,将在一组的所有控件的ValidationGroup属性设置为同一个名称(字符串)。在回发过程中,根据当前验证组中的验证控件来设置Page类的IsValid属性。,4.5 用户控件与自定义服务器控件,用户控件也叫Pagelet,是封装到可复用控件中的WEB窗体,可用于包含网站中许多页面都需要的重复代码块创建简单的Pagelet用户控件是System.Web.UI.UserControl类型,它直接继承自Sysgtem.Web.

40、UI.Control。与一般的Web Form网页相同,同样拥有用户界面网页和代码后置类文件,不同之处在于:用户控件的扩展名为:.ascx,无法作为独立的Web Form网页来运行。用户控件中没有Page指令,而是包含Control指令,该指令对配置及其他属性进行定义。用户控件中没有、标签。,4.5.1 用户控件,1、创建用户控件【4-16】,创建具有属性和方法的Pagelet必须在用户控件的代码后置类文件中使用public语句,将属性声明为用户控件的公用属性。定义公用方法。在使用该控件的Web Form网页的代码后置类文件中可使用该控件的公用属性和方法。在用户控件中封装事件,2、使用用户控件

41、,使用“设计”视图添加用户控件使用HTML视图添加用户控件声明Pagelet:添加用户控件:使用程序控制方式添加用户控件登陆PageLet:创建实例:Dim MyControl as UserControl=loadControl(“文件名”)容器控件.Controls.Add(MyControl)通过属性表或者代码设置用户控件公开的公共属性,3、将WebForm网页转换为用户控件将.aspx文件中的、标记及其结尾标记删除将指令类型从Page更改为Control,在Control指令中只保留Language、AutoEventWireup、CodeFile和Inherits属性。将CodeFi

42、le属性更改为用户控件的代码后置类文件.ascx.cs将Inherits属性更改为继承自用户控件的代码后置类文件在代码后置类文件中做如下修改:将public partial class 声明语句中的网页名称更改成用户控件名称将System.Web.UI.Page更改为 System.Web.UI.UserControl将扩展名.aspx改为.ascx,.aspx.cs改为.ascx.cs,4.5.2 自定义控件,所有的ASP.NET控件都是从System.Web.UI.Control或者System.Web.UI.WebControls.WebControl这两个类派生而来。从Control类

43、派生的类具有Page框架所需的基本功能。从WebControl派生的类除了具有Control类提供的功能之外,还添加了许多创建能够呈现可视化HTML控件的通用功能。自定义服务器控件与用户控件类似,可以包含很多类;但是,它们之间的根本区别在于自定义服务器控件使用预编译的程序集,而不是使用包含在组件内的代码。,创建自定义服务器控件的方法,使用模板创建控件【例4-17】ASP.NET服务器控件模板动态编译创建控件【例4-18】ASP.NET能动态编译ASP.NET网站根目录下App_Code目录中放置的代码。这样就可以从窗体页访问App_Code中源文件中的类,而无须将其手动编译为程序集。编译自定义

44、控件csc/t:library/out:GetTime.dll/r:System.dll/r:System.Web.dll GetTimeTextBox.cs/t:library 编译器选项告知编译器创建一个库,而不是创建一个可执行程序集。/out 程序集名称。/r 需要链接的程序集添加到工具箱中,4.6用JavaScript处理页面和服务器控件,把JavaScript直接应用于ASP.NET页面上的控件上.使用Page.ClientScript属性在ASP.NET页面上注册和使用JavaScript函数。RegisterClientScriptBlock方法:把JavaScript脚本放在页

45、面的顶部。RegisterStartupScript方法:把JavaScript脚本放在ASP.NET页面的底部。RegisterClientScriptInclude方法:在ASP.NET页面上注册脚本文件。,直接使用JavaScript,protected void Page_Load(object sender,EventArgs e)TextBox1.Text=DateTime.Now.ToString();,4.8 文件的上传和邮件发送【例4.19】,FileUpload控件显示一个文本框,在此用户可以键入希望上载到服务器的文件的名称。该控件还显示一个“浏览”按钮,该按钮显示一个文件

46、导航对话框。出于安全方面的考虑,不能将文件名预加载到FileUpload控件中。FileUpload控件格式如下:,检查该控件是否有上载的文件测试 FileUpload控件的HasFile属性保存上传文件到服务器调用HttpPostedFile对象的SaveAs方法获取上传文件的详细内容和属性。(1)通过FileUpload控件的FileBytes属性,获取上传文件的字节数组。(2)通过FileContent属性,获取指向上传文件的Stream对象。使用该属性可以以字节方式访问文件内容。(3)通过PostedFile属性,获取一个与上传文件相关的HttpPostedFile对象。可以使用该属性

47、访问文件的其他属性,ContentLength属性获取文件的长度,ContentType属性获取文件的MIME内容属性。,E_mail发送【例4-20】,ASP.NET封装了几个类用于实现传送E_mail的功能,它们分别是MailMessage、SmtpMail,这些类都属于“S.Mail”名称空间,在脚本中使用它们时,需要引入这个名称空间。用MailMessage获取邮件内容属性:To,From,Subject,Priority,Body用SmtpClient发送邮件Send(MailMessage)发送邮件用Attachment获取邮件附件,MailMessage类的主要属性,4.9 综合应用,【例4.21】模拟学生选课表单设计。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号