版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Web程序设计(第3版)“十一五”国家级规划教材目录第1章WEB编程根底知识第2章WEB应用程序开发环境第3章HTML与XML第4章脚本语言第5章页面设计第6章ASP程序设计第7章ASP.NET程序设计第8章WEB数据库程序设计第9章综合应用实例第7章
ASP.NET程序设计7.1初识ASP.NET7.2VB.NET语言根底7.3效劳器控件7.4ASP.NET的对象7.5ASP.NET应用举例——建立网上课堂讨论区7.1初识ASP
.NETASP.NET运行环境,除了在计算机上安装IIS信息效劳器外,还需另外加装.NETFramework。如果要使用.NETFramework提供的ADO.NET对象来访问数据库,计算机中还必须安装有MDAC〔MicrosoftDataAccessComponents〕2.7或以上版本。计算机要能够执行ASP.NET程序,必须安装如下软件:〔1〕Windows2000Professional/Server、WindowsXP或WindowsServer2003。〔2〕IIS5.0〔Internet信息效劳管理器5.0〕及以上版本。〔3〕.NETFrameworkSDK。〔4〕MDAC2.7〔MicrosoftDataAccessComponents2.7〕及以上版本。7.1.1ASP.NET的运行环境
7.1初识ASP
.net7.1.2一个简单的ASP.NET程序——用户登录程序
【例7-1】一个用户登录程序,分为学生、教师、管理员三类用户。输入用户名和密码以后,将根据用户的身份分别显示不同的欢送词。7.1初识ASP
.net7.1.2一个简单的ASP.NET程序——用户登录程序
<%@PageLanguage="VB"AutoEventWireup="true"%><scriptrunat="server">'登录按钮的单击事件过程ProtectedSubButton1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesButton1.ClickIfusename.Text="administrator"AndRadioteacher.Checked="True"_Andusepassword.Text<>""Then'输出身份是管理员的欢送词Response.Write("欢送你管理员同志!")ElseIfRadioteacher.Checked="True"Andusepassword.Text<>""ThenResponse.Write("欢送你"&usename.Text&"老师!")'身份是老师ElseIfusepassword.Text<>""ThenResponse.Write("欢送你"&usename.Text&"同学!")'身份是学生EndIfEndSub7.1初识ASP
.net7.1.2一个简单的ASP.NET程序——用户登录程序
ProtectedSubButton2_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesButton2.Clickusename.Text=""usepassword.Text=""usename.Focus()图7-1例7-1运行结果
EndSub</script><html><head><title>无标题页</title></head><bodybgcolor="White"><p></p>用户登录<hr/><%--下面构造一个表单--%><formid="form1"runat="server"><div>
7.1初识ASP
.net7.1.2一个简单的ASP.NET程序——用户登录程序
<!--RadioButton单项选择钮--><asp:RadioButtonID="Radiostudent"GroupName="sel"runat="server"checked="true"Text="学生"/><asp:RadioButtonID="Radioteacher"GroupName="sel"runat="server"Text="教师"/><br/><!--TextBox单行文本输入框-->用户名:<asp:TextBoxID="usename"runat="server"></asp:TextBox><br/><!--TextBox密码文本输入框-->密码:<asp:TextBoxID="usepassword"runat="server"TextMode="Password"></asp:TextBox><br/><asp:ButtonID="Button1"runat="server"Text="登录"/><asp:ButtonID="Button2"runat="server"Text="取消"/></div><!--输出当前日期和时间-->登录时间是:<%=Now%></form></body></html>7.1初识ASP
.net7.1.3ASP.NET程序结构分析
ASP.NET程序文件是一个扩展名为.aspx的文本文件。当客户端请求到来时,Web效劳器将请求提交给ASP.NET模块处理,在效劳器上动态编译和执行,产生一个HTML流,然后传送给发出请求的客户端浏览器。7.1初识ASP
.net7.1.3ASP.NET程序结构分析
ASP.NET的页面结构通常由以下一个或多个元素构成:页面编译指令代码声明块代码呈现块代码注释ASP.NET控件文本和HTML标记效劳器端包含指令页面的根本结构和语法7.1初识ASP
.net7.1.3ASP.NET程序结构分析
页面编译指令
页面编译指令是供编译器处理ASP.NET页面和用户控件时使用的命令。如:<%@PageLanguage="VB"AutoEventWireup="true"%>页面编译指令的语法格式如下:<@%指令名属性=属性值%>在.aspx文件中常用的页面编译指令有以下几种:@Page 配置页面被处理和编译时与之相关的属性。@Import 将命名空间导入到当前页面中。@Register 允许注册其他控件以便在页面上使用。@Assembly 在编译时将程序集链接到页面,使程序员可以使用程序集公开的所有类和方法。@Implements 定义要在页或用户控件中实现的接口。
页面的根本结构和语法7.1初识ASP
.net7.1.3ASP.NET程序结构分析
代码声明块定义一段在效劳器上运行的程序代码,用来生成动态的Web页面,一般写在程序的开始局部。语法格式如下:<scriptlanguage="编程语言"runat="server">代码</script>其中,属性language的值可以是.NET支持的任何一种编程语言,如VB.NET、C#、Jscript.NET等。如果没有指定,那么采用@Page指令中配置的语言。假设@Page指令中也没有定义,默认是VB.NET。页面的根本结构和语法7.1初识ASP
.net7.1.3ASP.NET程序结构分析
代码呈现块定义呈现网页时所执行的内嵌代码。语法格式如下:<%内嵌代码%>如:<%=Now%>代码呈现块在ASP中至关重要,而在ASP.NET中已被更好的机制代码声明块所取代。注意:<%和%>标记中不能编写事件处理过程。
页面的根本结构和语法7.1初识ASP
.net7.1.3ASP.NET程序结构分析
代码注释ASP.NET文件中的注释有三种形式:HTML注释、代码注释和效劳器端注释标记。①HTML注释。语法格式:<!--注释-->②效劳器端注释标记。语法格式:<%--注释--%>③代码注释。语法格式如下:<scriptlanguage="C#"runat="server">代码/*注释块*/</script>页面的根本结构和语法或者:<scriptlanguage="VB"runat="server">
代码
'注释</script>7.1初识ASP
.net7.1.3ASP.NET程序结构分析
ASP.NET控件ASP.NET控件主要有HTML效劳器控件、Web效劳器控件,它们是构成用户界面和展示数据的重要元素。HTML效劳器控件是从HTML标记开展而来的,增加了id属性和runat属性,运行于效劳器端。如:<inputtype="button"id="Submit1"value="登录"runat="server"onServerClick="b-click"/>Web效劳器控件除了具有HTML控件的属性外,还有方法和事件。效劳器控件必须放置在<formrunat=“server”></form>标记之间,并标记为runat=“server”。页面的根本结构和语法7.1初识ASP
.net7.1.3ASP.NET程序结构分析
ASP.NET控件Web效劳器控件例如:<asp:ButtonID="Button1"runat="server"Text="登录"/>ProtectedSubButton1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesButton1.ClickIfusename.Text="administrator"AndRadioteacher.Checked="True"andusepassword.Text<>""Then'输出身份是管理员的欢送词Response.Write("欢送你管理员同志!")ElseIfRadioteacher.Checked="True"Andusepassword.Text<>""ThenResponse.Write("欢送你"&usename.Text&"老师!")'身份是老师ElseIfusepassword.Text<>""ThenResponse.Write("欢送你"&usename.Text&"同学!")'身份是学生EndIfEndSub页面的根本结构和语法7.1初识ASP
.net7.1.3ASP.NET程序结构分析
文本和HTML标记
如例7-1中的文本“用户登录”和众多的HTML标记<hr/>、<p>、<form>等。
页面的根本结构和语法7.1初识ASP
.net7.1.3ASP.NET程序结构分析
效劳器端包含指令它可以将指定文件的原始内容插入到ASP.NET页内的任意位置,其作用相当于将两个文件合并成一个文件。被插入的文件可以是网页文件〔.aspx〕、用户控件文件〔.ascx〕和Global.asax文件。语法格式如下:<!--#includefile|virtual=filename-->file关键字指示要包含的文件在效劳器上的物理路径,可以是绝对路径或相对路径,但必须与页面文件在同一路径下。virtual关键字指示使用网站的虚拟路径。和file一样,可以是绝对路径或相对路径。filename是file或virtual的属性值,是一个以双引号括起来的文件名。页面的根本结构和语法7.1初识ASP
.net7.1.3ASP.NET程序结构分析
ASP.NET页面由两局部组成:可视元素和编程逻辑。①可视元素由HTML标记、静态文本和ASP.NET效劳器控件构成,以<HTML>标记开始,</HTML>标记结束,用于实现Web应用程序与用户交互的界面。②编程逻辑由程序设计语言编写的代码构成,介于标记<Script>和</Script>之间,用于完成Web应用程序的功能。
ASP.NET的页面模式
7.1初识ASP
.net7.1.3ASP.NET程序结构分析
〔1〕单文件页模式。与ASP模式相同。它将可视元素和编程逻辑放在同一个.aspx文件中。〔2〕代码隐藏页模式。它是ASP.NET新引入的一种代码绑定技术,它将可视元素和编程逻辑分别放置在两个文件中。实现界面设计的可视元素仍存放在扩展名为.aspx的文件中,而由效劳器执行的编程逻辑那么存放在扩展名为.aspx.vb〔假设此处使用的程序设计语言是VB.NET〕的文件中。为了实现两个文件的关联,必须对.aspx文件中Page指令的CodeFile属性进行设置。假设.aspx文件名为login.aspx,那么CodeFile属性应设置为:<%@PageLanguage="VB"AutoEventWireup="false"CodeFile=""Inherits="login"%>这一模式对于代码的重用、程序的调试和维护均有重要意义。采用代码隐藏页模式还可以有效地保护代码,提高程序的平安性。
ASP.NET的页面模式
7.1初识ASP
.net7.1.3ASP.NET程序结构分析
一个完整的ASP.NET应用,指某个虚拟目录及其子目录中Web效劳、Web页面、效劳器控件、执行代码以及配置参数等所有文件的综合。ASP.NET的所有文件用不同类型的扩展名加以区分。
ASP.NET的文件类型
7.1初识ASP
.net7.1.3ASP.NET程序结构分析
〔1〕.aspx页面文件。该文件由可视元素和编程逻辑两局部组成,如同过去的.asp文件,浏览器可执行此类文件,向效劳器提出浏览请求。〔2〕.ascx用户控件文件。內含用户控件,可內含在多个.aspx文件中。〔3〕.resx资源文件。资源是在逻辑上由应用程序部署的任何非可执行数据。通过在资源文件中存储数据,无须重新编译整个应用程序即可更改数据。〔4〕.aspx.cs或.aspx.vb代码别离文件。将Web页面编程逻辑存放在一个单独的文件中,该文件称为代码隐藏页文件。.aspx.cs是用C#语言编写的页面文件。.aspx.vb是用VB.NET语言编写的页面文件。〔5〕Web.config配置文件。该文件向它所在的目录和所有子目录提供配置信息。〔6〕global.asax配置文件。ASP.NET系统环境设置文件,相当于ASP中的global.asa文件。
ASP.NET的文件类型
7.1初识ASP
.net7.1.3ASP.NET程序结构分析
ASP.NET采用事件驱动的编程模型,添加到网页上的Web效劳器控件通过所触发的事件来执行系列操作。ASP.NET的事件不管发生在客户端还是发生在效劳器端根本上都是在效劳器端处理。默认情况下,只有当效劳器控件按钮〔Button〕被单击时,才向效劳器传递事件信息。ASP.NET中的事件有:HTML事件、在ASP.NET生成页面时自动触发的几个事件以及用户与页面交互时触发的事件等。
ASP.NET事件驱动的编程模型
ASP.NET页面事件处理过程7.1初识ASP
.net7.1.4命名空间
命名空间又称名称空间或名字空间。它将一些提供相似功能或具有相似状态的类聚合在一起组成一个在逻辑上相关的单元,以便在.NET中使用,它是.NET框架的重要组成局部。命名空间采用树形结构管理方式,每一层之间用“.”隔开,记录类的名称及其所在的位置。命名空间不仅由类和对象组成,而且含有子命名空间,如就是System.data的子命名空间。在.NET系统类库中包含80多个命名空间,命名空间System.IO的一个实例就包含了那些用于处理输入和输出操作的类。7.1初识ASP
.net7.1.4命名空间
导入命名空间为了在ASP.NET页面中使用这些类,必须使用指令@Import将命名空间导入到aspx页面。假设将命名空间导入到扩展名为.aspx.vb的后台页面中,那么需使用关键字Imports。例如,将以下命名空间导入到aspx页面:<%@ImportNamespace="System.data"%><%@ImportNamespace=""%><%@ImportNamespace="System.IO"%>将以上命名空间导入到.aspx.vb后台页面,使用以下方法:ImportsSystem.dataImportsImportsSystem.IO7.1初识ASP
.net7.1.4命名空间
自动导入的命名空间System:包含所有根本数据类型和其他诸如与生成随机数、处理日期和时间相关的那些类。System.Colletions:包含处理诸如哈希表〔散列表〕和数组列表等标准集合类型的类。:包含表示链表和字符串集合等特定集合的类。System.Configuration:包含处理配置文件的类。System.IO:包含读/写数据流/文档和普通输入/输出〔I/O〕功能的类型和类。System.Text:包含编码、解码和操作字符串内容的类。:包含执行正那么表达式匹配和替换操作的类。System.Web:包含使用万维网的根本类,其中包括表示浏览器请求和效劳器响应的类。:包含缓存页面内容和执行自定义缓存操作的类。:包含实现验证和授权的类。:包含实现会话状态的类。:包含构建用户界面的根本类。:包含HTML控件的类。:包含Web控件的类。7.2VB.NET语言根底ASP.NET支持多种编程语言,如VB.NET、C#等。其中VB.NET是VisualBasic.NET的简称,它从VisualBasic语言演变而来,是一种简单、易学、面向对象、支持继承性的编程语言。
7.2VB.NET语言根底根本数据类型7.2.1数据类型与运算符
VB.NET提供的根本数据类型有:数值型文本型逻辑型日期型对象型数据类型存储空间取值范围数值型Byte(字节型)1B0~255Integer(整型)4B
2147483648~2147483647Short(短整型)2B
32768~32767Long(长整型)8B
9223372036854775807Single(单精度浮点)4B正数:1.401298E
45~3.402823E38Double(双精度浮点)8B负数:
1.79769313486231E308~4.94065645841247E-324
正数:4.94065645841247E324~1.79769313486231E308Decimal(十进制型)12B有28位小数时,取值范围为:+/
7.922E162514264337593543950335文本型String(字符串)字符串长度大约0~20亿个字符Char(字符)2B0~65535Boolean(逻辑型)2BTrue或FalseDate(日期型)8B0001年1月1日至9999年12月31日Object(对象型)4B可存放程序中的对象和任何类型的数据VB.NET的根本数据类型7.2VB.NET语言根底常量与变量7.2.1数据类型与运算符
常量
在VB.NET中有三种类型的常量:直接常量、符号常量和系统常量。①直接常量就是在程序中直接给出的数据值。如:12、23.12E5、"VB"、True、#12/25/2010#等。②符号常量是用Const语句声明的用户自定义常量,一旦赋值其值就不可改变。语法格式如下:[Public|Private]Const<常量名>[As类型]=<常量表达式>例如:ConstPiAsSingle=3.14159③系统常量是由系统提供的内部常量,无须声明即可引用。如系统常量vbCrLf表示回车换行。
7.2VB.NET语言根底常量与变量7.2.1数据类型与运算符
变量①变量名的命名规那么。变量名由字母、数字、下划线组成,且必须以字母开头,长度不超过255个字符。不能与VB.NET的系统保存字同名。②变量的声明。声明变量就是通知应用程序按照变量的类型事先为其分配适当的存储空间。变量声明语句的语法格式如下:[Public|Private|Protected|Friend]Dim<变量名>As<类型>例如:DimI,JAsInteger,FlagAsBoolean注意:当页面指令中含有Explicit="false"设置时,允许使用没有声明的变量。例如:<%@PageLanguage="VB"Explicit="false"%>7.2VB.NET语言根底常量与变量7.2.1数据类型与运算符
变量③变量的作用域。由变量在程序中的声明位置决定,可以使用不同的关键字来定义不同的变量。如果在过程内用Dim语句声明一个变量,那么此变量就是一个过程级变量,仅在定义它的过程中有效。假设在过程外用Dim或Private语句定义一个变量,该变量就是一个模块级变量,在定义它的模块内的所有过程中有效。假设是用Public定义的变量,那么是全局变量,在所有模块的所有过程中有效。7.2VB.NET语言根底【例7-2】变量作用域例如。<scriptrunat="server">DimaAsInteger'模块级变量
PrivatebAsInteger'模块级变量
Subpage_load(ByValsenderAsObject,ByValeAsEventArgs)
DimcAsInteger'过程级变量
Callexample()
Response.Write("a="&a)
Response.Write("b="&b)
Response.Write("c="&c)EndSubSubexample()
DimcAsInteger'过程级变量
a=4
b=5
c=6EndSub</script>7.2VB.NET语言根底数组
7.2.1数据类型与运算符
数组是同类型变量的有序集合。集合中的变量称为数组元素〔又称下标变量〕。数组中所有元素具有相同的数据类型和名称〔Object型数组除外〕,并依据各自不同的下标值相互区分。只有一个下标的数组称为一维数组,有两个下标的数组称为二维数组,依次类推。7.2VB.NET语言根底数组
7.2.1数据类型与运算符
数组的声明数组声明语句的语法格式如下:Dim<数组名>〔上界1[,上界2]…〕As<数据类型>例如:Dima(10)AsInteger,b(2,1)AsSingle三点说明:①数组名的命名规那么遵循变量名命名法那么。②数组的下界固定为0。③当数组类型为Object型时,数组的各个元素可以具有不同的数据类型。7.2VB.NET语言根底数组
7.2.1数据类型与运算符
数组的访问数组中的每个元素都可以看成是一个独立的变量,但凡允许简单变量出现的地方,都可以使用数组元素。如参与表达式计算、赋值等。例如:DimA(10)AsInteger,iAsIntegerA(0)=10A(1)=A(0)+27.2VB.NET语言根底数组
7.2.1数据类型与运算符
数组函数①Lbound函数。功能是返回数组某维的下界值。函数格式如下:LBound(<数组名>[,<维数>])假设默认“维数”参数,那么函数返回数组第一维的维下界值。②Ubound函数。功能是返回数组某维的上界值。函数格式如下:UBound(<数组名>[,<维数>])假设默认“维数”参数,那么函数返回数组第一维的维上界值。7.2VB.NET语言根底数组
7.2.1数据类型与运算符
动态数组
数组声明时,不指定数组的大小,仅用一对圆括号表示,这样的数组称为“动态数组”,需使用ReDim语句对数组的维数和下标范围进行说明。因而动态数组的使用需要经过两个步骤:声明数组和分配空间。
①动态数组的声明。语法格式如下:Dim<数组名>()[As<数据类型>]②为动态数组分配空间。语法格式如下:ReDim[Preserve]<数组名>(上界1[,上界2]…)As<数据类型>7.2VB.NET语言根底运算符
7.2.1数据类型与运算符
运算符是执行某种运算功能的符号。VB.NET中的运算符包括:算术运算符关系运算符逻辑运算符连接运算符赋值运算符7.2VB.NET语言根底运算符
7.2.1数据类型与运算符
算术运算符运算符说明优先级举例运算结果^乘方13^29-负号2-3-3*乘32*36/除310/33.333333333\整除410\33Mod取模510Mod31+加64+26-减66-247.2VB.NET语言根底运算符
7.2.1数据类型与运算符
关系运算符运算符功能举例结果=等于"ABC"="ABBC"False>大于"ABCDE">"ABS"False>=大于等于"abc">="ABC"True<小于27<7False<=小于等于"27"<="7"True<>不等于"abc"<>"ABC"TrueLike比较两个字符串是否匹配。匹配为True,否则为False"abc"Like"*abc"TrueIs比较两个对象是否一致。一致为True,否则为False。它要求两个操作数为Object类型Button1IsButton2False7.2VB.NET语言根底运算符
7.2.1数据类型与运算符
逻辑运算符运算符作用优先级说明举例结果Not非1取反操作NotTrueFalseAnd与2只有两个操作数均为True时,结果才为TrueTrueAndTrueTrueOr或3只要有一个操作数为True,结果就为TrueFalseOrFalseFalseXor异或4两个操作数不同时,结果为True,否则为FalseTrueXorTrueFalse7.2VB.NET语言根底运算符
7.2.1数据类型与运算符
连接运算符将两个字符串拼接成一个字符串,亦称字符串连接运算符,有“&”和“+”两种形式。在进行字符串连接运算时两者是完全等价的。但由于“+”运算符的二义性,在使用时须特别注意。例如:"123"+45 结果为:168"123"+"45" 结果为:"12345""abcdef"+12345 结果为:出错!"abcdef"&12345 结果为:"abcdef12345"123&45 结果为:"12345"7.2VB.NET语言根底运算符
7.2.1数据类型与运算符
赋值运算符运算符举例说明=a=b将b的值赋给a+=a+=ba=a+b-=a-=ba=a-b*=a*=ba=a*b/=a/=ba=a/b\=a\=ba=a\b&=a&=ba=a&b^=a^=ba=a^b7.2VB.NET语言根底运算符
7.2.1数据类型与运算符
运算符的优先级
7.2VB.NET语言根底分支语句
7.2.2控制语句〔1〕If…Then语句。单分支结构语句。语法格式如下:If条件表达式Then语句组EndIf〔2〕If…Then…Else语句。双分支结构语句。语法格式如下:If条件表达式then语句组1Else语句组2EndIf7.2VB.NET语言根底分支语句
7.2.2控制语句〔3〕If…Then…ElseIf语句。多分支结构语句。语法格式如下:If条件表达式1Then语句组1ElseIf条件表达式2Then语句组2ElseIf条件表达式3Then语句组3[Else语句组n+1]EndIf7.2VB.NET语言根底分支语句
7.2.2控制语句〔4〕SelectCase语句。另一种形式的多分支结构语句。语法格式如下:SelectCase测试表达式Case测试项1语句组1Case测试项2语句组2…CaseElse语句组n+1EndSelect7.2VB.NET语言根底
【例7-3】根据学生的分数,评定不同的成绩等级,其中分数score值由随机函数产生。分数90及以上评定为优秀,分数80~89之间评定为良好,分数70~79之间评定为中,分数60~69之间上评定为及格,60以下为不及格。
Subpage_load(ByValsenderAsObject,ByValeAsEventArgs)DimscoreAsIntegerRandomize()score=Int((100-1+1)*Rnd()+1)'随机函数产生0-100之间的数
SelectCasescoreCase90,91To100Response.Write("该生成绩为:优秀")CaseIs>=80Response.Write("该生成绩为:良好")CaseIs>=70Response.Write("该生成绩为:中")CaseIs>=60Response.Write("该生成绩为:及格")CaseElseResponse.Write("该生成绩为:不及格")
EndSelectEndSub
7.2VB.NET语言根底循环语句
7.2.2控制语句〔1〕For…Next语句。循环次数的情况下,通常使用该循环控制语句。语法格式如下:For循环控制变量=初值To终值[Step步长]…[ExitFor]…Next循环控制变量7.2VB.NET语言根底循环语句
7.2.2控制语句〔2〕Do…Loop语句。根据条件控制循环次数的语句,通常用于循环次数事先不确定的情况。它有两种形式。形式1语法格式如下:DoWhile|Until<条件表达式>…[ExitDo]…Loop形式2语法格式如下:Do
…
[ExitDo]
…LoopWhile|Until<条件表达式>7.2VB.NET语言根底VB.NET包含4种过程:Sub过程Function过程事件过程Property过程7.2.3过程和函数
7.2VB.NET语言根底VB.NET包含4种过程:Sub过程Function过程事件过程Property过程7.2.3过程和函数
7.2VB.NET语言根底Sub过程
7.2.3过程和函数
Sub过程的定义Sub过程在使用之前必须“先定义,后使用”。Sub过程定义的语法格式如下:[Private|Public|Protected]Sub<过程名>([参数列表])
语句组1ExitSub
语句组2EndSub7.2VB.NET语言根底Sub过程
7.2.3过程和函数
Sub过程的定义①过程说明语句和EndSub语句之间的局部称为过程体。EndSub语句表示过程结束。②ExitSub语句强制退出Sub过程。③Private|Public|Protected表示子程序的访问控制类型,默认为Public。④参数列表中的每个参数称为“形式参数”,多于一个时用逗号隔开。假设省略那么称为无参过程。参数定义的语法格式如下:[ByVal|ByRef]参数名[As数据类型]7.2VB.NET语言根底【例7-4】编写一个求两个数最大值的Sub过程。7.2.3过程和函数
PrivateSubMyMax(ByValaAsInteger,ByValbAsInteger)DimMaxAsIntegerIfa>bThenMax=aElseMax=bEndIfResponse.Write(Max)EndSub7.2VB.NET语言根底Sub过程
7.2.3过程和函数
Sub过程的调用用Call语句实现Sub过程的调用。语法格式如下:Call<过程名>(实在参数表)①系统执行该语句时将控制转移到指定的Sub过程并执行该Sub过程。②实在参数简称实参,它可以是常量、变量或表达式。实在参数表中的实参个数、类型及顺序必须与Sub过程中定义的形参一一对应,各个参数间用逗号分隔。
【例7-5】调用例7-4中的MyMax过程。CallMyMax(5,9)结果显示9。7.2VB.NET语言根底Function过程
7.2.3过程和函数
Function过程的定义[Private|Public]Function<函数名>([参数列表])[As数据类型]语句组1ExitFunction语句组2EndFunction①ExitFunction语句强制退出Function过程。②[As数据类型]子句定义函数类型。默认该选项时,函数的数据类型为Object〔变体〕类型。③Private|Public|和参数列表的含义同Sub过程。④在函数体中必须有返回结果的语句。可以是以下两种方式之一:使用表达式给函数名赋值,使用Return语句返回函数值。7.2VB.NET语言根底
【例7-6】编写一个求N!的函数子程序。7.2.3过程和函数
PublicFunctionfact(ByValnAsInteger)AsLongDimiAsInteger,termAslongterm=1Fori=1Tonterm=term*iNextiFact=term'使用表达式给函数名赋值,返回函数值EndFunction
7.2VB.NET语言根底Function过程
7.2.3过程和函数
Function过程的调用可以像Sub过程调用那样,使用Call语句。但更多的是出现在表达式中作为表达式的一局部被引用。调用函数过程的语法格式如下:<函数过程名>([实在参数表])【例7-7】调用求N!的函数子程序,求1!+3!+5!+7!的值。DimyAsLongy=fact(1)+fact(3)+fact(5)+fact(7)Response.Write(y)执行上述程序显示结果5167。7.2VB.NET语言根底参数传递
7.2.3过程和函数
VB.NET中参数的传递方法有两种:一种是按值传递另一种是按地址传递7.2VB.NET语言根底参数传递
7.2.3过程和函数
按值传递假设在形参前加上ByVal关键字就是按值传递。调用时将实参值的副本存放在为虚参开辟的一个临时存储空间中,因而在过程中改变形参的值不会影响到实参。按值传递方式只能从过程外部向过程内部传递数据。在VB.NET中按值传递是默认的参数传递方式。7.2VB.NET语言根底参数传递
7.2.3过程和函数
按地址传递假设形参前加上关键字ByRef就是按地址传递。调用时将实参在内存的地址传递给形参,也就是实参、形参共用一个内存空间。所以在过程中改变形参的值就是改变对应实参的值。按地址传递参数方式不仅可以从过程外部向过程内部传递数据,而且也可以从过程内部向过程外部传递数据7.2VB.NET语言根底
【例7-8】编写一个求两个自然数的最大公约数的函数过程,并调用该过程求数25和15的最大公约数。7.2.3过程和函数
FunctionmaxcommonDivisor(ByValaAsInteger,ByValbAsInteger)AsInteger
DimtAsIntegerDoWhileb<>0t=aModba=bb=tLoopReturnaEndFunctionSubpage_load(ByValsenderAsObject,ByValeAsEventArgs)'事件过程
Dimx,y,zAsInteger
x=25:y=15z=maxcommonDivisor(x,y)Response.Write(x&"和"&y&"的最大公约数为:"&z)EndSub
7.2VB.NET语言根底常用的标准函数
7.2.3过程和函数
标准函数实际上是系统已预先定义好的函数过程,用户只需通过函数名及函数的参数即可调用。VB.NET的标准函数分为:数学函数类型转换函数字符串函数日期/时间函数7.2VB.NET语言根底数学函数
7.2.3过程和函数
Sgn(2.3)1函数名功能举例结果Sqrt(x)求x的平方根,x≥0Sqrt(16)4Abs(x)求x的绝对值Abs(-5.3)5.3Exp(x)求以e为底的指数幂,即exExp(2)7.38905609893065Log(x)求以e为底的自然对数Log(15)2.70805020110221Sgn(x)符号函数,x为正数,返回1;x为负数,返回-1;x为0,返回0Sgn(-2.3)-1Rnd(x)产生(0,1)区间的单精度型随机数。参数x可以省略Rnd()Sin(x)求x的正弦函数,x单位是弧度Sin(3.141592/6)0.499999905662436Cos(x)求x的余弦函数,x单位是弧度Cos((3.141592/6)0.86602545825025Tan(x)求x正切值,x单位是弧度Tan(3.141592/6)0.577350123947459Atn(x)求x反正切值Atan(3.141592/6)0.4823478216078327.2VB.NET语言根底类型转换函数
7.2.3过程和函数
函数名功能举例结果Val(x)将字符串x中的数字字符串转换成数值Val("123ABC")123Str(x)将数值x转换为字符串(含符号位)Str(-123.45)"-123.45"Cstr(x)将数值x转换为字符串(对于正数符号位不予保留)Cstr(-123.45)"-123.45"Asc(x)求出字符x的ASCII值Asc("A")65Chr(x)求ASCII值为x的字符Asc(97)"a"CInt(x)小数部分四舍五入,如果小数点后为0.5,则按“奇进偶不进”的原则舍入CInt(-8.5)-8Fix(x)将x的小数部分舍去Fix(-7.8)-7Int(x)取小于等于x的最大整数Int(-7.8)-87.2VB.NET语言根底字符串函数
7.2.3过程和函数
函数名功能举例结果Len(s)求字符串s的长度(字符个数)Len("AB")3Left(s,n)取字符串s左边的n个字符Left(s,3)"ABC"Right(s,n)取字符串s右边的n个字符Right(s,3)"123"Mid(s,n1,n2)从字符串s的左边第n1个字符开始向右取n2个字符Mid(s,3,1)"C"Ucase(s)将字符串s中的字符改为大写Ucase("Abc")"ABC"Lcase(s)将字符串s中的字符改为小写Lcase("ABC")"abc"Ltrim(s)去掉字符串s左边的空格Ltrim("xy")"xy"Rtrim(s)去掉字符串s右边的空格Rtrim("xy")"xy"Trim(s)去掉字符串s两边的空格Trim("xy")"xy"Instr([n,]s,"字符")从字符串s的第n个位置开始查找指定的字符。若找到,返回该字符在s中的位置。若找不到,返回0。n的默认值为1Instr(s,"AB")17.2VB.NET语言根底日期/时间函数
7.2.3过程和函数
函数名功能举例结果Now返回系统当前日期和时间Now()2010-8-2409:20:30Year(x)返回x的年号Year("Jan27,2010")2010Month(x)返回x的月份(1~12)Month("Jan27,2010")1Day(x)返回x的日期(1~31)Day(Now())24Hour(x)返回时间x的小时数Hour(Now())9Minute(x)返回时间x的分钟数Minute(Now())20Second(x)返回时间x的秒数Second(Now())30Weekday(x)返回一个整数。表示日期x对应的是星期几(1~7)。默认情况下,Sunday为1,Monday为2Weekday("Jan27,2010")47.3效劳器控件ASP.NET效劳器控件主要分为以下三种类型:HTML效劳器控件Web效劳器控件标准效劳器控件验证控件导航控件数据控件登录控件等。用户自定义效劳器控件7.3.1效劳器控件的分类7.3效劳器控件HTML效劳器控件7.3.1效劳器控件的分类HTML效劳器控件类是在命名空间中定义的。HTML效劳器控件的语法格式如下:<控件标记Id="控件名称"属性1=属性值1...Runat="Server"/>例如,如下输入密码的文本框控件:<inputId="Password1"type="password"Runat="Server"/>7.3效劳器控件Web效劳器控件7.3.1效劳器控件的分类Web效劳器控件类定义在命名空间中。除了包括一些常见的按钮和文本框控件外,还增加了一些特殊用途的控件,如数据访问控件、日历控件等。Web效劳器控件的语法格式如下:<asp:控件标记Id="控件名称"属性1="属性值1"…Runat="Server"/>或<asp:控件标记Id="控件名称"属性1="属性值1"…Runat="Server"></asp:控件标记>7.3效劳器控件用户自定义效劳器控件7.3.1效劳器控件的分类自定义控件被定义在命名空间或中,是编程人员自行设计和开发的控件。它存放在扩展名为.ascx的文件中,使用时只须将它们集成进ASP.NET应用程序中。通过这个方法,用户不仅可以使用自己定义的控件,还可以很方便地使用第三方提供的现成控件,如图表工具和树形图等,且大局部控件都可以在网上免费下载,这为广阔程序开发者高效、快速的地开发Web程序提供了方便。7.3效劳器控件Web效劳器控件的共有属性7.3.2Web效劳器控件的属性、事件和方法属性说明属性说明AccessKey定义控件的加速键Font-Names控件使用字体的列表BackColor控件的背景颜色Font-Size字体的大小BorderColor控件的边框颜色Font-Underline字体是否使用下划线BorderStyle控件的边框样式ForeColor控件上文本的颜色BoderWidth控件的边框宽度Height控件的高度CSSClass控件使用的样式表类TabIndex控件的Tab键顺序Enabled指定控件能否被访问Text控件上显示的文本Font-Bold字体是否为粗体ToolTip设置控件的提示信息Font-Name控件上文本的字体Visible设置控件是否可见Runat属性值固定为ServerWidth控件的宽度7.3效劳器控件Web效劳器控件的方法7.3.2Web效劳器控件的属性、事件和方法方法说明ApplyStyleSheetSkin将页面样式表中定义的属性应用于该控件DataBind将控件与某个数据源进行绑定Dispose从内存中释放控件之前,给控件一个执行清除任务的机会Focus把输入焦点设置为该控件GetType获取当前实例的类型7.3效劳器控件Web效劳器控件事件和事件过程7.3.2Web效劳器控件的属性、事件和方法Web效劳器控件事件是使某个控件进入活动状态的一种操作或动作。例如,按下某个键、单击一下鼠标等都可触发一个控件事件。在例7-1中,单击“登录”和“取消”按钮都会触发Button控件的鼠标单击事件。事件发生以后,如果有相应的事件处理过程,就会完成过程所要求的功能。如“取消”按钮的单击事件过程,将“用户名”输入框和“密码”输入框的内容清空,并将光标定位到“用户名”输入框上。7.3效劳器控件Label控件〔标签框〕7.3.3标准效劳器控件〔1〕语法格式。Label控件语法格式如下:<asp:LabelId="控件名称"Text="所要显示的文字"Runat="Server"/>或<asp:LabelId="控件名称"Runat="Server">所要显示的文字</asp:Label>〔2〕属性。Text属性是Label控件最重要的属性,设置在控件上显示的文本,可以通过程序修改Text属性值。7.3效劳器控件TextBox控件〔文本框〕7.3.3标准效劳器控件〔1〕语法格式。TextBox控件语法格式如下:<asp:TextBoxId="控件名称"Runat="Server"AutoPostBack="True|False"Columns="字符数目"MaxLength="字符数目"Rows="列数"Text="字符串"TextMode="SingleLine|Multiline|Password"Wrap="True|False"
OnTextChanged="事件过程名"/>〔2〕属性。除了前面介绍的共有属性外,TextBox控件还有下页表所示的一些属性。〔3〕事件。TextChanged事件。当文本框中的内容改变并且按下回车键,或焦点改变到另一个控件时将会触发TextChanged事件。属性说明AutoPostBack该属性为一个布尔值。当取值为True时,向服务器发送文本框的内容,如果和上次发送的内容不同,就会触发TextChanged事件。当值为False时,不触发Columns设置文本框的显示宽度(单位:字符)MaxLength设置文本框中允许输入的最大字符数。当TextMode属性设置为MultiLine时,该属性无效Rows设置多行文本框的显示行数。本属性在TextMode属性设置为MultiLine时有效Text用于获取或设置文本框中的内容TextMode设置文本框的显示模式。共有三种取值:1.SingleLine—只可以输入一行。默认为SingleLine2.PassWord—密码输入,输入的字符以*代替3.MultiLine—可输入多行
Wrap设定是否自动断行。本属性在TextMode属性设置为MultiLine时有效TextBox控件的属性说明
7.3效劳器控件Button控件〔命令按钮〕7.3.3标准效劳器控件〔1〕语法格式。Button控件语法格式如下:<asp:ButtonId="控件名称"Runat="Server"Text="按钮上的文字"OnClick="事件过程名"MouseOver="事件过程名"OnMouseOut="事件过程名"/>〔2〕属性。Text属性。按钮上显示的文字,用以提示用户进行何种选择。〔3〕事件。①Click事件。用鼠标单击Button控件时触发。②MouseOver事件。当用户的光标进入按钮范围时触发。可以利用此事件完成诸如当光标移入按钮范围时,使按钮发生某种显示上的改变,用以提示用户可以进行选择了。③OnMouseOut事件。当用户光标脱离按钮范围时触发。7.3效劳器控件RadioButton控件〔单项选择钮〕7.3.3标准效劳器控件〔1〕语法格式。RadioButton控件语法格式如下:<asp:RadioButtonId="控件名称"Runat="Server"AutoPostBack="True|False"Checked="True|False"GroupName="单项选择按钮组名称"Text="标识控件的文字"TextAlign="Right|left"OnCheckedChanged="事件过程名"/>〔2〕属性。RadioButton控件常用的属性如下页表所示。〔3〕事件。CheckedChanged事件,当单项选择钮的状态发生变化时触发该事件,前提是AutoPostBack属性值为True。否那么,该事件将被延迟。7.3效劳器控件RadioButton控件〔单项选择钮〕7.3.3标准效劳器控件RadioButton控件常用的属性属性说明AutoPostBack当按钮状态改变时决定页面是否被传回。属性值为True时,传回;值为False时,不传回Checked设置或获取按钮的当前状态。选中时,Checked值为TrueGroupName设置单选按钮组的名称。同组中的按钮只能选中一个TextAlign设置文本的位置是在按钮的左边或右边,默认RightText单选按钮边所显示的文本7.3效劳器控件RadioButtonList控件〔单项选择钮列表〕7.3.3标准效劳器控件〔1〕语法格式。RadioButtonList控件语法格式如下:<asp:RadioButtonListId="控件名称"Runat="Server"AutoPostBack="True|False"CellPadding="像素"CellSpacing="像素“RepeatDirection="Vertical|Horizontal"RepeatLayout="Flow|Table"TextAlign="Right|Left"RepeatColumns="列表的列数"OnSelectedIndexChanged="事件过程名"><asp:ListItemvalue="选项值1"selected="True|False"text="选项文字1"/><asp:ListItemvalue="选项值2"selected="True|False"text="选项文字2"/>…</asp:RadioButtonList>〔2〕属性。RadioButtonList控件常用属性如下页表所示。〔3〕事件。SelectedIndexChanged事件。当用户选择了控件中的某一选项时触发该事件RadioButtonList控件常用属性属性说明AutoPostBack决定更改RadioButtonList控件中的内容时,是否自动回送到服务器。默认值为False,不回送CellPadding表示单元格的边框和内容之间的距离,单位是像素点数(px)CellSpacing表示单元格和单元格之间的距离,单位是像素点数(px)Items表示RadioButtonList控件中各选项的集合。如RadioButtonList1.Items(i)表示第i个选项,i从0开始。每个选项都有三个基本属性。①Text属性—表示每个选项的文本。②Value属性—表示每个选项的选项值。③Select属性—表示该选项是否选中RepeatColumns设置列表使用的列数RepeatDirection设置RadioButtonList控件的排列方式。当属性值为Horizontal时,各选项以行优先排列;当属性值为Vertical时,各选项以列优先排列RepeatLayout设置RadioButtonList控件的排列方式。属性值为Table时,以一个不可见的表结构形式显示;属性值为Flow时,不以表结构显示SelectedIndex获取控件中选定项的索引值。第一项值为0SelectedItem获取控件中选定项的Text属性值SelectedValue获取控件中选定项的Value属性值TextAlign设置显示文本的位置是在按钮的左边或右边,默认Right7.3效劳器控件【例7-10】单项选择钮列表控件例如。7.3.3标准效劳器控件<asp:RadioButtonListID="RadioButtonList1"Runat="Server"Height="77px"Width="141px"CellPadding="1"CellSpacing="1"RepeatColumns="2"><asp:ListItemSelected="True"Value="1">篮球</asp:ListItem><asp:ListItemValue="2">排球</asp:ListItem><asp:ListItemValue="3">乒乓球</asp:ListItem>图7-4单项选择钮列表控件例如<asp:ListItemValue="4">羽毛球</asp:ListItem></asp:RadioButtonList>7.3效劳器控件CheckBox控件〔复选框〕7.3.3标准效劳器控件〔1〕语法格式。CheckBox控件语法格式如下:<asp:CheckBoxId="控件名称"Runat="Server"AutoPostBack="True|False"Text="标识控件的文字"TextAlign="Right|Left"Checked="True|False"OnCheckedChanged="事件过程名"/>〔2〕属性。CheckBox控件常用的属性如下页表所示。〔3〕事件。CheckedChanged事件。当复选框的状态发生变化时触发。如果AutoPostBack的值是False,这个事件将被延迟触发。7.3效劳器控件CheckBox控件〔复选框〕7.3.3标准效劳器控件CheckBox控件常用属性
属性说明AutoPostBack决定单击CheckBox控件时是否自动回送到服务器Checked设置或获取复选框的选中状态。值为True时,表示选中。值为False时,表示未选中Text设置或获取复选框的标识文本TextAlign设置显示文本的位置是在复选框的左边或右边,默认Right7.3效劳器控件CheckBoxList控件〔复选框列表〕7.3.3标准效劳器控件〔1〕语法格式。CheckBoxList控件语法格式如下:<asp:CheckBoxListId="控件名称"Runat="Server"AutoPostBack="True|False"CellPadding="像素"RepeatColumns="列表的列数"RepeatDirection="Vertical|Horizontal"RepeatLayout="Flow|Table"TextAlign="Right|Left"OnSelectedIndexChanged="事件过程名"><asp:ListItemvalue="选项值1"selected="True|False"text="选项文字1"/><asp:ListItemvalue="选项值2"selected="True|False"text="选项文字2"/>…</asp:CheckBoxList>〔2〕属性。各属性的含义参见RadioButtonList控件的常用属性。〔3〕事件。SelectedIndexChanged事件。当复选列表框中的选项改变时触发该事件。7.3效劳器控件DropDownList控件〔下拉列表框〕7.3.3标准效劳器控件〔1〕语法格式。Drop
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论