ASP.NET程序设计教程(C#版)第4版 课件 第4、5章 C#程序设计基础、ASP.NET常用对象和状态管理_第1页
ASP.NET程序设计教程(C#版)第4版 课件 第4、5章 C#程序设计基础、ASP.NET常用对象和状态管理_第2页
ASP.NET程序设计教程(C#版)第4版 课件 第4、5章 C#程序设计基础、ASP.NET常用对象和状态管理_第3页
ASP.NET程序设计教程(C#版)第4版 课件 第4、5章 C#程序设计基础、ASP.NET常用对象和状态管理_第4页
ASP.NET程序设计教程(C#版)第4版 课件 第4、5章 C#程序设计基础、ASP.NET常用对象和状态管理_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章C#程序设计基础本章讲述的主要内容

4.1C#程序设计方法

4.2使用动态控件

4.3创建和使用自定义控件

4.4实训

4.1C#程序设计方法4.1.1事件驱动机制所谓“事件”指的是能被程序感知到的用户或系统发起的操作。如用户单击了鼠标、输入了文字、选择了选项;系统将窗体装入内存并初始化等。

VS中包含了大量已定义的隶属于各种控件的事件,如Click()、Load()、TextChange()等等。在代码窗口中设计人员可以编写响应事件的代码段来实现程序的具体功能,这就是可视化程序设计方法的事件驱动机制。

当然,除了系统预定义的各种事件外,还可以通过委托创建具有特定功能的自定义事件以满足程序设计的需要。4.1C#程序设计方法4.1.2选择结构程序设计方法所谓选择结构是指程序可以根据一定的条件有选择地执行某一程序段,即对不同的问题采用不同的处理方法。C#提供了多种形式的条件语句来实现选择结构。1.if…else结构if语句是程序设计中基本的选择语句,if语句的语法格式为:if(条件表达式){语句序列1;}else{语句序列2;}4.1C#程序设计方法4.1.2选择结构程序设计方法

2.if…elseif结构if…elseif语句的语法结构如下:if(条件表达式1){条件表达式1成立时执行的语句序列;}elseif(条件表达式2){条件表达式2成立时执行的语句序列;}elseif(条件表达式n){条件表达式n成立时执行的语句序列;}else{所有条件都不成立时执行的语句序列;}4.1C#程序设计方法4.1.2选择结构程序设计方法

3.多分支选择结构(switch语句)switch语句的语法格式为:switch(控制表达式){case常量表达式1:

语句序列1;break;case常量表达式2:

语句序列2;break;default:

语句序列3;break;}4.1C#程序设计方法4.1.3循环结构程序设计方法

1.for循环

for循环常常用于已知循环次数的情况(也称为“定次循环”),使用该循环时,测试是否满足某个条件,如果满足条件,则进入下一次循环,否则,退出该循环。for循环语句的语法格式为:for(表达式1;表达式2;表达式3){

循环语句序列(循环体);}4.1C#程序设计方法4.1.3循环结构程序设计方法

2.while循环

while循环适合不定次循环的种情况。循环时在循环的顶部判断某个条件是否满足,当循环的条件判断为真时(满足条件),进入循环,否则退出循环。while循环语句的格式为:while(条件表达式){

循环语句序列;}4.1C#程序设计方法4.1.3循环结构程序设计方法

3.do…while循环

do…while循环非常类似于while循环。一般情况下,二者可以相互转换使用。它们之间的差别在于while循环的测试条件在每一次循环开始时执行,而do…while循环的测试条件在每一次循环体结束时进行判断。do…while语法的一般格式为:do{

语句序列;}while(条件表达式);4.1C#程序设计方法4.1.3循环结构程序设计方法

4.foreach循环

foreach循环主要应用于遍历数据集(如,数组、集合、文件夹中的文件、数据表等)的场景中。其语法格式为:foreach(类型变量名in数据集名){

循环体语句;}4.1C#程序设计方法4.1.3循环结构程序设计方法

5.循环的嵌套

若一个循环结构中包含有另一个循环,则称为“循环的嵌套”。这种语句结构称为多重循环结构。内层循环中还以包含新的循环,形成多层循环结构,循环嵌套的层数理论上无限制。在多重循环结构中,三种循环语句(for循环、while循环和do…while循环)可以互相嵌套。在多重循环中,需要注意的是循环语句所在循环的层次,内循环必须完全包含在外循环内部。4.1C#程序设计方法4.1.4使用类文件和类库

类文件是添加到网站中的一种独立的代码集合,其中通常包含了关于程序中所涉及的对象的一些定义(对象的属性、方法和事件等)和对数据库的操作(对数据库的增、删、改、查),也可以包含一些应用程序的业务逻辑实现。

类库中包含的内容与类文件基本相同,只是类库需要单独创建,编译后将生成一个.dll文件(动态链接库文件)。类库不隶属于网站项目,只能被网站引用。类库被引用后便可在网站中使用其中定义的对象和方法。4.1C#程序设计方法4.1.4使用类文件和类库

1.向网站中添加类文件4.1C#程序设计方法4.1.4使用类文件和类库

2.引用类库类库是包含了一些特定功能(如,数据库操作、某种业务逻辑的实现等)的应用程序封装。类库可以由程序员根据实际需要自行编写代码创建,也可以直接引用第三方提供的已编译完成的.dll文件。Internet中存在大量优秀的,由第三方编写、封装的.dll格式的类库或组件文件,直接引用这些类库可以非常轻松的完成一些看似很复杂的工作。例如,需要在没有安装MicrosoftWord软件的Web服务器中,对Word文档进行读、写、插图、插表、合并文档等操作时,就可以借助由第三方提供的,功能十分强大的Aspose.Words.dll来实现。

参阅源代码:ex4-64.2使用动态控件存放在工具箱中的各种控件,都是以“类”的形式出现的。例如,工具箱中的按钮控件图标就代表了各种表现形式的所有按钮。也就是说工具箱中的控件表现的是一种“类型”,将其添加到窗体的操作实际上是完成了“类的实例化”,即将抽象的类型转换成实际的对象。由于控件是控件类的实例化结果,自然可以在程序运行中使用代码动态地创建、显示和操作控件。通常将由代码根据实际需要动态创建的控件称为“动态控件”。4.2使用动态控件4.2.1创建动态控件

1.实例化控件类控件类的实例化与普通类的实例化步骤完全相同,其语法格式为:

控件类名对象名=new控件类名;例如,下列语句用于实例化一个Button类对象。

Buttonbtn=newButton();通过控件类实例化得到的控件对象,可以像处理普通控件一样设置其初始属性。例如:

4.2使用动态控件4.2.1创建动态控件

2.创建控件类对象的事件通过实例化得到控件类对象后,通常需要使用带有两个参数的EventHandler委托来定义对象的某个事件。概括的说使用EventHandler委托声明对象事件的语法格式为:

对象名.事件名+=newEventHandler(事件处理程序名);例如,声明某文本框对象txt的TextChanged事件可使用如下语句:

txt.TextChanged+=EventHandler(txt_TextChanged);4.2使用动态控件4.2.2使用动态控件

1.将动态控件添加到Web页面将控件对象添加到窗体或某个容器控件中,需要使用Controls类的Add方法,其语法格式为:

Controls.Add(对象名称);例如,下列代码可将一个按钮对象添加到窗体的指定位置。4.2使用动态控件4.2.2使用动态控件

2.访问动态控件的属性访问控件对象的属性需要首先使用Controls类的Find方法查找控件,该方法带有的两个参数分别表示被查找控件的Name属性值和是否查找子控件。其语法格式为:

Control[]结果集名称=Controls.Find("对象Name属性值",true/false)Find方法的返回值为一个控件集合(存放所有找到的控件)。如果希望访问结果集中第n个控件的某属性值可使用如下代码:

变量类型变量名=结果集名称[n-1].属性名;

[n-1]:结果集的索引值从零开始

参阅源代码:ex4-74.3创建和使用自定义控件4.3.1创建自定义控件创建或打开一个ASP.NET网站,在解决方案资源管理器中右键单击网站名称,在弹出的快捷菜单中执行“添加”下的“Web用户控件”命令,在弹出的对话框中指定自定义控件文件名后单击“确定”按钮。在设计自定义控件时所使用的编程技术与设计Web页面的技术完全相同,甚至只需对Web窗体(.aspx)进行简单的修改即可使之成为自定义控件。自定义控件文件名以“.ascx”为扩展名进行标识。自定义控件页与Web窗体页主要有以下两点区别:①自定义控件页只能以.ascx为扩展名;②在自定义控件文件中不能包含<html>、<body>、<from>元素,这些元素应位于宿主页(引用自定义控件的Web窗体)中。4.3创建和使用自定义控件4.3.2使用自定义控件

2.程序运行时动态添加自定义控件通常需要在主Web页面中添加一个容器控件PlaceHolder,作为用户自定义控件的“占位”控件。在程序运行时通过代码创建一个自定义控件的实例,而后将自定义控件添加到容器控件中。

例如:4.3创建和使用自定义控件4.3.2使用自定义控件

1.程序设计时使用自定义控件在解决方案资源管理器中,将设计完毕的自定义控件直接从解决方案资源管理器拖动到页面适当的位置。窗体设计器能自动向Web页面添加@Register指示符,使自定义控件成为Web窗体的一个组成部分。此外,当自定义控件被添加到Web窗体中后,该控件的公共属性、事件和方法也将向Web窗体公开,并可以通过编程的方式来使用。4.4实训掌握C#程序设计方法4.4.1实训目的通过上机操作掌握C#中结构化程序设计的基本方法;理解顺序结构、选择结构的基本概念;掌握if…else、switch语句的使用方法。通过本实训进一步理解使用C#创建ASP.NET网站的一般步骤和常用编程技巧。4.4.2实训要求为小学生设计一个用于100以内的加法练习程序。第5章ASP.NET常用对象和状态管理本章讲述的主要内容5.1Page对象5.2Response对象5.3Request对象5.4Server对象5.5ASP.NET状态管理5.6实训使用Cookie

5.1Page对象5.1.1Page对象的常用属性、方法和事件

1.Page对象的属性5.1Page对象5.1.1Page对象的常用属性、方法和事件

2.Page对象的常用方法和事件5.1Page对象5.1.2Web窗体页面的生命周期1)初始化:该阶段将触发Page对象的Init事件,并执行OnInit方法。该阶段在Web窗体的生存周期内仅此一次。2)加载视图状态:该阶段主要执行LoadViewState()方法3)处理回发数据:该阶段主要执行LoadPostData()方法,用来检查客户端发回的控件数据的状态是否发生了变化。4)加载:该阶段将触发Load事件,并执行Page_Load方法。5)预呈现:该阶段要处理在最终呈现之前所做的各种状态更改。6)保存状态:该阶段的任务是将当前状态写入ViewState属性。7)呈现:该阶段将对应的HTML代码写入最终响应的流中。8)处置:该阶段将执行Dispose方法,释放占用的系统资源。9)卸载:这是Web窗体生命周期的最后一个阶段,在这个阶段中将触发UnLoad事件,执行OnUnLoad方法,以处理Web窗体在消亡前的最后处理。5.2Response对象5.2.1Response对象的常用属性和方法

Response对象的常用属性见下表。5.2Response对象5.2.1Response对象的常用属性和方法

Response对象的常用方法见下表。

5.2Response对象5.2.2使用Response对象输出信息到客户端1.使用Write方法

Write方法的语法格式如下:

Response.Write(string);2.使用WriteFile方法

使用Response对象的WriteFile方法可以将指定的文件内容直接写入HTML输出流。其语法格式如下:

Response.WriteFile(filename);5.2Response对象5.2.3使用Redirect方法实现页面跳转

Response对象的Redirect方法用于将客户端重定向到新的URL,实现页面间的跳转。该方法的语法格式如下:

Response.Redirect(url[,endResponse])使用Response对象的Redirect方法时应注意如下问题:1)使用该方法实现跳转时,浏览器地址栏中将显示目标URL。2)执行该方法时,重定向操作发生在客户端,涉及到两个不同页面或两个Web服务器之间的通信,第一阶段是对原页面的请求,第二阶段是对目标URL的请求。3)该方法执行后内部控件保存的所有信息将丢失,因此当从A页面跳转到B页面后,在页面B中无法访问A页面提交的数据。若需从A页面传递数据到B页面,只能通过url参数中的“?”来实现。5.3

Request对象5.3.1Request对象的常用属性和方法

1.Request对象的常用属性

5.3

Request对象5.3.1Request对象的常用属性和方法

2.Request对象的常用方法1)MapPath(VirtualPath):该方法将当前请求的URL中的虚拟路径VirtualPath映射到服务器上的物理路径。参数VirtualPath用于指定当前请求的虚拟路径(可以是绝对路径,也可以是相对路径)。返回值为与VirtualPath对应的服务器端物理路径。2)SaveAs(filename,includeHeaders):该方法将客户端的HTTP请求保存到磁盘。参数filename用于指定文件在服务器上保存的位置;布尔型参数includeHearders用于指示是否同时保存HTTP头。

5.3

Request对象5.3.1Request对象的常用属性和方法3.通过查询字符串实现跨页数据传递Request对象的QueryString属性用于接收来自用户请求URL地址中“?”后面的数据,通常将这些数据称为“查询字符串”,也称为“URL附加信息”,常被用来在不同网页中传递数据。使用Response对象的Redirect属性可以同时传递多个参数,其语法格式如下:

Response.Redirect("目标网页?参数1&参数2&…&参数n");5.3

Request对象5.3.1Request对象的常用属性和方法4.使用Browser属性获取客户浏览器信息

Request对象的Browser属性包含有众多子属性,用来返回客户端浏览器的信息和客户端操作系统的信息等。5.3

Request对象5.3.2处理HTML表单在Web窗体页面中,往往包含有许多Web服务器控件(文本框、单选按钮、复选框等)或HTML表单。这些控件的值存放在窗体变量中,当用户提交页面时,这些窗体变量被发送到服务器端。使用Request对象的Form属性可以访问被提交到服务器的窗体变量。其语法格式如下:

Request.Form[element|index]

Request对象的Browser属性包含有众多子属性,用来返回客户端浏览器的信息和客户端操作系统的信息等。

参阅源代码:ex5-15.4

Server对象5.4.1Server对象的常用属性和方法

Server对象的常用属性有:

MachineName属性和ScriptTimeout属性常用方法见下表。5.4

Server对象5.4.2Execute、Transfer和MapPath方法

1.Execute和Transfer方法

Server对象的Execute方法和Transfer方法都可以实现从当前页面跳转到另一页面的功能。但需要注意的是:Execute方法在新页面中的程序执行完毕后自动返回到原页面,继续执行后续代码;而Transfer方法在执行了跳转后不再返回原页面,后续语句也永远不会被执行。但跳转过程中Request、Session等对象中保存的信息不变,也就是说从A页面使用Transfer方法跳转到B页面后,可以继续使用A页面中提交的数据。此外,由于Execute方法和Transfer方法都是在服务器端执行的,客户端浏览器并不知道已进行了一次页面跳转,所以其地址栏中的URL仍然是原页面的数据。这一点与Response对象Redirect方法实现的页面跳转是不同的。5.4

Server对象5.4.3Execute、Transfer和MapPath方法

2.MapPath方法在Web应用程序执行时可能需要访问存放在服务器中的某一文件,此时就需要将文件的虚拟路径转换成服务器端对应的物理路径。而Server对象的MapPath方法就是用来完成这一任务的。MapPath()方法的语法格式为:

Server.MapPath(虚拟路径);5.5ASP.NET的状态管理5.5.1创建和使用Cookie对象

1.创建Cookie浏览器负责管理客户机上的Cookie,Cookie需要通过Response对象发送到浏览器,发送前需要将其添加到Cookie集合中。Cookie有3个重要的参数:名称、值和有效期。如果没有设置Cookie的有效期,它仍可被创建,但不会被Response对象发送到客户端,而是将其作为用户会话的一部分进行维护,当用户关闭浏览器(会话结束)时该Cookie将被释放。这种非永久性Cookie十分适合用来保存只需要短暂保存或由于安全原因不能保存在客户机上的信息。创建Cookie的语法格式如下:

Response.Cookies["名称"].Value=值;

5.5ASP.NET的状态管理5.5.1创建和使用Cookie对象

2.读取Cookie

使用Request对象的Cookies属性可以读取保存在客户机上指定Cookie的值,其语法格式如下:变量=Request.Cookies["名称"].Value;5.5ASP.NET的状态管理5.5.1创建和使用Cookie对象

3.使用多值Cookie

例如,下列语句创建了一个名为“Person”的Cookie集合,其中包含有3个子属性,对于浏览器来说,只相当于一条Cookie。

使用下列语句可从上述多值Cookie中读取数据。参阅源代码:ex5-25.5ASP.NET的状态管理5.5.2创建和使用Session对象

1.Session的工作原理

当用户请求一个ASP.NET页面时,系统将自动创建一个Session,退出应用程序时该会话撤销。系统创建会话时将为其分配一个标识(SessionID),以实现对会话进行管理和跟踪。

SessionID具有的随机性和惟一性保证了会话不会冲突,也不能利用新SessionID推算出现有会话的SessionID。通常情况下,SessionID会存放在客户端的Cookies内,当用户访问ASP.NET网站中任何一个页面时,SessionID将通过Cookie传递到服务器端,服务器根据SessionID的值对用户进行识别,以返回对应该用户的Session信息。5.5ASP.NET的状态管理5.5.2创建和使用Session对象

2.Session对象的常用属性及方法Session对象的常用属性见下表。5.5ASP.NET的状态管理5.5.2创建和使用Session对象

2.Session对象的常用属性及方法Session对象的常用方法

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论