(精品)C#开发Web应用程序.ppt
开发开发Web应用程序应用程序中国地质大学(武汉)杨之江中国地质大学(武汉)杨之江 内容内容ASP.NET的开发环境配置的开发环境配置编写编写ASP.NETWeb应用程序应用程序ASP.NET服务器端控件服务器端控件创建创建Web服务服务Q&A1ASP.NET的开发环境配置的开发环境配置首先并不是所有的首先并不是所有的Windows系统都可作为系统都可作为ASP.NET的开发平台,的开发平台,Windows98系统系列就不支持系统系列就不支持ASP.NET其次为了能够创建其次为了能够创建ASP.NETWeb应用程序,系统要安装微软的应用程序,系统要安装微软的Internet信息服务器信息服务器(IIS),如果使用的系统是,如果使用的系统是Windows2000或或WindowsXP系列,那它们直接就带有系列,那它们直接就带有IIS,可以通过,可以通过【控制控制面板面板】中的添加中的添加/删除程序来安装删除程序来安装2编写编写ASP.NETWeb应用程序应用程序VisualStudio.NET是一个功能十分强大的开发工具,我们先来是一个功能十分强大的开发工具,我们先来使用它创建一个简单的使用它创建一个简单的Web应用程序,然后逐步对这个程序进行应用程序,然后逐步对这个程序进行讲解。讲解。【例例】打开打开VisualStudio.NET,选择,选择【文件文件】|【新建新建】|【项目项目】命命令。从令。从【模板模板】栏内选择栏内选择【ASP.NETWeb应用程序应用程序】。如果是。如果是第一次创建,第一次创建,Web应用程序的名称将是应用程序的名称将是WebApplication1,接,接受默认值,单击受默认值,单击【确定确定】按钮。这时将出现按钮。这时将出现WebForm1.aspx的的设计界面,现在可以向其中添加控件形成一个完整的设计界面,现在可以向其中添加控件形成一个完整的Web窗体。窗体。2.1ASP.NET的基本语法的基本语法基本文件名种类:基本文件名种类:.asax文件:文件:ASP.NET的系统环境设置文件。的系统环境设置文件。.aspx文件:内含文件:内含ASP程序代码的文件,浏览器可执行程序代码的文件,浏览器可执行此类文件,向服务器提出浏览请求。此类文件,向服务器提出浏览请求。.asmx文件:制作文件:制作WebServices的源文件。的源文件。.sdl文件:制作文件:制作WebServices的的XML格式的文件。格式的文件。.vb或或.cs文件:在非文件:在非ASP.NET环境下,执行环境下,执行WebServices的文件。的文件。.aspc文件:可重复使用多个文件:可重复使用多个.aspx文件,此文件内可文件,此文件内可含有控件。含有控件。.ascx文件:内含文件:内含UserControl的文件,可内含在多的文件,可内含在多个个.aspx文件中。文件中。2.1ASP.NET的基本语法的基本语法声明代码的语法声明代码的语法代码内联代码段内联代码段 或者ASP.NET服务器端控件语法服务器端控件语法ASP.NETHTML服务器端控件语法服务器端控件语法数据绑定语法数据绑定语法Object标记语法标记语法 例如注释语法注释语法 2.2CodeBehind技术技术aspx例子例子WebForm1 Label 2.2CodeBehind技术技术cs例子例子public class WebForm1:System.Web.UI.Pageprotected System.Web.UI.WebControls.TextBox TextBox1;protected System.Web.UI.WebControls.Button Button1;protected System.Web.UI.WebControls.Label Label1;private void Page_Load(object sender,System.EventArgs e)/在此处放置用户代码以初始化页面private void InitializeComponent()this.Button1.Click+=new System.EventHandler(this.Button1_Click);this.Load+=new System.EventHandler(this.Page_Load);private void Button1_Click(object sender,System.EventArgs e)int i=100;string str=Convert.ToString(i,2);Label1.Text=str;2.3Web窗体窗体在在Web窗体页中,用户界面编程分为两个不同窗体页中,用户界面编程分为两个不同的部分:可视控件和逻辑。的部分:可视控件和逻辑。视觉元素称作视觉元素称作Web窗体窗体“页页”(page)。这种页。这种页由一个包含静态由一个包含静态HTML和和/或或ASP.NET服务器服务器控件的文件组成。控件的文件组成。Web窗体页用作要显示的静窗体页用作要显示的静态文本和控件的容器。态文本和控件的容器。Web窗体页的逻辑由代码组成,开发者创建代窗体页的逻辑由代码组成,开发者创建代码与窗体进行交互,编程逻辑位于与用户界面码与窗体进行交互,编程逻辑位于与用户界面文件不同的文件中,该文件称作文件不同的文件中,该文件称作“代码隐藏代码隐藏”文件,用文件,用aspx.cs”作为扩展名,在代码隐藏文作为扩展名,在代码隐藏文件中编写的逻辑使用件中编写的逻辑使用C#来编写。来编写。2.3Web窗体的事件响应窗体的事件响应像在像在Windows窗体上使用控件一样,窗体上使用控件一样,Web控件和控件和HTML控控件也有与它们相关的事件,可以为这些事件生成代码。每件也有与它们相关的事件,可以为这些事件生成代码。每个控件都有它们自己的特殊事件,例如,按钮控件有个控件都有它们自己的特殊事件,例如,按钮控件有Click事件,文本框有事件,文本框有TextChanged事件。事件。Web窗体事件和窗体事件和Windows窗体事件有一个重要的区别:窗体事件有一个重要的区别:Windows窗体的事件是在本地机进行处理的;窗体的事件是在本地机进行处理的;与与Web窗体事件相关的代码被存储在窗体事件相关的代码被存储在Web服务器上的的代服务器上的的代码文件中,这意味着当运行在用户浏览器上的码文件中,这意味着当运行在用户浏览器上的Web窗体中窗体中的事件被触发时,窗体不得不回叫的事件被触发时,窗体不得不回叫Web服务器来处理它的服务器来处理它的事件。当事件被触发时,事件。当事件被触发时,Web窗体页再次与窗体页再次与Web服务器通服务器通信来处理这些代码。信来处理这些代码。因此,过多地使用控件事件会造成频繁地访问服务器。因此,过多地使用控件事件会造成频繁地访问服务器。3ASP.NET服务器端控件服务器端控件u3.1Web服务器控件服务器控件u3.2HTML服务器控件服务器控件u3.3验证控件验证控件u3.4用户控件用户控件3ASP.NET服务器端控件服务器端控件服务器端控件是服务器端控件是ASP.NET编程的基础,编写编程的基础,编写Web页面很大程度上页面很大程度上就是将控件拼凑起来,以使其协同工作。就是将控件拼凑起来,以使其协同工作。Web窗体总共可以加入窗体总共可以加入4种控件,它们是:种控件,它们是:Web服务器控件,服务器控件,HTML服务器控件,验证控件和用户控件服务器控件,验证控件和用户控件3.1Web服务器控件服务器控件VisualStudio.NET提供了众多的提供了众多的Web服务器控件,这些控件都服务器控件,这些控件都包含多种属性,更改这些属性可使控件具有不同的功能。包含多种属性,更改这些属性可使控件具有不同的功能。控件的属性既可以在控件的属性既可以在VisualStudio.NET的属性对话框中进行静的属性对话框中进行静态更改,也可以在程序运行时进行动态更改。态更改,也可以在程序运行时进行动态更改。3.1Web服务器控件服务器控件-文本框控件文本框控件TextBox控件文本框控件提供了向文本框控件提供了向Web窗体输入信息的方法,可以将文本框的窗体输入信息的方法,可以将文本框的TextMode属性赋为属性赋为SingLine、MultiLine和和Password来改变来改变它的行为模式它的行为模式3.1Web服务器控件服务器控件-文本框控件的公共属性文本框控件的公共属性名名 称称描描 述述Columns获获取或取或设设置文本框的置文本框的显显示示宽宽度度(以字符以字符为单为单位位)MaxLength获获取或取或设设置文本框中最多允置文本框中最多允许许的字符数的字符数ReadOnly获获取或取或设设置一个置一个值值,用于指示能否更改,用于指示能否更改TextBox 控件的内控件的内容容Rows获获取或取或设设置多行文本框的置多行文本框的显显示高度示高度Text获获取或取或设设置文本框的文本内容置文本框的文本内容TextMode获获取或取或设设置文本框的行置文本框的行为为模式模式Wrap获获取或取或设设置一个置一个值值,该值该值指示文本框内的文本内容是否指示文本框内的文本内容是否换换行行3.1Web服务器控件服务器控件-文本框控件的公共方法文本框控件的公共方法名名 称称描描 述述AppendText向文本框的当前文本追加文本向文本框的当前文本追加文本Clear从文本框控件中清除所有文本从文本框控件中清除所有文本ClearUndo从从该该文本框的撤消文本框的撤消缓缓冲区中清除关于最近操作的信息冲区中清除关于最近操作的信息Copy将文本框中的当前将文本框中的当前选选定内容复制到剪定内容复制到剪贴贴板板Cut将文本框中的当前将文本框中的当前选选定内容移定内容移动动到剪到剪贴贴板中板中Paste用剪用剪贴贴板的内容替板的内容替换换文本框中的当前文本框中的当前选选定内容定内容Hide对对用用户隐户隐藏控件藏控件3.1Web服务器控件服务器控件-按钮控件按钮控件VisualStudio.NET的工的工具箱中提供了具箱中提供了3种按钮控种按钮控件:普通按钮件:普通按钮Button、显示超链接样式的按钮显示超链接样式的按钮LinkButton和显示图像和显示图像样式的样式的ImageButton。按钮控件发生按钮控件发生Click事件事件时会直接导致向服务器端时会直接导致向服务器端提交。提交。3.1Web服务器控件服务器控件-按钮控件公共属性按钮控件公共属性名名 称称描描 述述CausesValidation获获取或取或设设置一个置一个值值,该值该值指示在指示在单击单击Button控件控件时时是否是否执执行了行了验证验证Text获获取或取或设设置在置在Button控件中控件中显显示的文本示的文本标题标题ToolTip获获取或取或设设置当鼠置当鼠标标指指针悬针悬停在停在 Web 服服务务器控件上器控件上时显时显示的文本示的文本 Button和LinkButton控件的公共属性名名 称称描描 述述AlternateText获获取或取或设设置当置当图图像不可用像不可用时时,Image控件中控件中显显示的替示的替换换文本。支持工具提示功能的文本。支持工具提示功能的浏览浏览器将此文本器将此文本显显示示为为工具提示工具提示ImageAlign获获取或取或设设置控件相置控件相对对于于Web页页上其他元素的上其他元素的对齐对齐方式方式ImageUrl获获取或取或设设置在控件中置在控件中显显示的示的图图像的位置像的位置ImageButton控件的公共属性 3.1Web服务器控件服务器控件-复选框和单选按钮控件复选框和单选按钮控件复选框控件(CheckBox、CheckBoxList)和单选按钮控件(RadioButton、RadioButtonList)复选框控件和单选按钮控件十分类似,它们都复选框控件和单选按钮控件十分类似,它们都允许从多个选项中进行选择,不同的是复选框允许从多个选项中进行选择,不同的是复选框控件允许同时选择多项,而单选按钮控件每次控件允许同时选择多项,而单选按钮控件每次只能选择一项。只能选择一项。CheckBoxList控件和控件和RadioButtonList控件可以单独使用,而控件可以单独使用,而CheckBox控件和控件和RadioButton控件则需要多控件则需要多个一起使用。它们都可以和数据源进行绑定,个一起使用。它们都可以和数据源进行绑定,不过比较起来使用不过比较起来使用CheckBoxList控件和控件和RadioButtonList控件访问数据更为方便一些控件访问数据更为方便一些3.1Web服务器控件服务器控件-复选框和单选按钮控件复选框和单选按钮控件3.1Web服务器控件服务器控件-复选框和单选按钮控件复选框和单选按钮控件对对CheckBoxList控件和控件和RadioButtonList控件来说,控件来说,可以直接通过可以直接通过Items属性来设属性来设置显示项和标签。打开这些控置显示项和标签。打开这些控件属性对话框中的件属性对话框中的Items项,项,将出现将出现ListItem集合编辑器集合编辑器可以在左侧可以在左侧【成员成员】栏内添加栏内添加显示项,右边的属性栏可以设显示项,右边的属性栏可以设置该项的属性。置该项的属性。Selected属性属性表明该项是否被选定,表明该项是否被选定,Text属属性的值将作为该项的显示标签,性的值将作为该项的显示标签,Value的值可以作为编程时的的值可以作为编程时的内部值使用,该值可与内部值使用,该值可与Text属属性采用不同的值性采用不同的值3.1Web服务器控件服务器控件-复选框和单选按钮控件复选框和单选按钮控件名名 称称描描 述述Checked获获取或取或设设置一个置一个值值,该值该值指示是否已指示是否已选选中控件中控件Text获获取或取或设设置与控件关置与控件关联联的文本的文本标签标签TextAlign获获取或取或设设置与控件关置与控件关联联的文本的文本标签标签的的对齐对齐方式方式 CheckBox和RadioButton控件的公共属性3.1Web服务器控件服务器控件-复选框和单选按钮控件复选框和单选按钮控件名名 称称描描 述述CellPadding获获取或取或设设置表置表单单元格的元格的边边框和内容之框和内容之间间的距离的距离(以像素以像素为单为单位位)CellSpacing获获取或取或设设置置单单元格之元格之间间的距离的距离(以像素以像素为单为单位位)DataMember获获取或取或设设置要置要绑绑定到控件的定到控件的 DataSource 中的特定表中的特定表DataSource获获取或取或设设置填充列表控件置填充列表控件项项的数据源的数据源DataTextField获获取或取或设设置置为为列表列表项项提供文本内容的数据源字段提供文本内容的数据源字段DataTextFormatString获获取或取或设设置格式化字符串,置格式化字符串,该该字符串用来控制如何字符串用来控制如何显显示示绑绑定定到列表控件的数据到列表控件的数据DataValueField获获取或取或设设置置为为各列表各列表项项提供提供值值的数据源字段的数据源字段Items获获取列表控件取列表控件项项的集合的集合RepeatColumns获获取或取或设设置要在控件中置要在控件中显显示的列数示的列数RepeatDirection获获取或取或设设置一个置一个值值,该值该值指示控件是垂直指示控件是垂直显显示示还还是水平是水平显显示示RepeatLayout获获取或取或设设置复置复选选框的布局框的布局SelectedIndex获获取或取或设设置列表中置列表中选选定定项项的最低序号索引的最低序号索引SelectedItem获获取列表控件中索引最小的取列表控件中索引最小的选选定定项项 CheckBoxList和RadioButtonList控件的公共属性 3.1Web服务器控件服务器控件-DropDownList控件和ListBox控件DropDownList控件和控件和ListBox控件都提供了选择特控件都提供了选择特定项的功能,不同处在于定项的功能,不同处在于DropDownList控件提供一控件提供一个下拉列表框进行选择,而个下拉列表框进行选择,而ListBox控件直接提供多个控件直接提供多个选项,而且还可同时选择选项,而且还可同时选择ListBox控件中的多项控件中的多项与复选框控件和单选按钮相同,它们都可以通过属性与复选框控件和单选按钮相同,它们都可以通过属性对话框的对话框的Items项打开项打开ListItem集合编辑器对显示项集合编辑器对显示项进行添加删除,它们也都具有数据源绑定功能进行添加删除,它们也都具有数据源绑定功能3.1Web服务器控件服务器控件-DropDownList控件和ListBox控件ListItem集合编辑器3.1Web服务器控件服务器控件-DropDownList控件公共属性名名 称称描描 述述Items获获取列表控件取列表控件项项的集合的集合SelectedIndex已重写。已重写。获获取或取或设设置置 DropDownList 控件中的控件中的选选定定项项的索引的索引SelectedItem获获取列表控件中索引最小的取列表控件中索引最小的选选定定项项3.1Web服务器控件服务器控件-ListBox控件公共属性名名 称称描描 述述Items获获取列表控件取列表控件项项的集合的集合Rows获获取或取或设设置置 ListBox 控件中控件中显显示的行数示的行数SelectedIndex获获取或取或设设置列表中置列表中选选定定项项的最低序号索引的最低序号索引SelectedItem获获取列表控件中索引最小的取列表控件中索引最小的选选定定项项SelectionMode获获取或取或设设置置 ListBox 控件的控件的选择选择模式模式3.2HTML服务器控件服务器控件ASP.NET的的Web窗体也支持窗体也支持HTML服务器控件,在工具箱的服务器控件,在工具箱的HTML子项就可以找到它们,你可能会发现子项就可以找到它们,你可能会发现HTML服务器控件和服务器控件和刚才介绍的刚才介绍的Web服务器控件有些重复,它同样也具有按钮控件、服务器控件有些重复,它同样也具有按钮控件、文本框控件等,那它与文本框控件等,那它与Web控件有什么区别呢,什么时候应该用控件有什么区别呢,什么时候应该用Web服务器控件什么时候应该用服务器控件什么时候应该用HTML服务器控件服务器控件HTML服务器控件与服务器控件与Web服务器控件的区别服务器控件的区别浏览器都支持基本的浏览器都支持基本的HTML元素,而应用这些基本的元素,而应用这些基本的HTML元素元素可以组合出复杂的元素,可以组合出复杂的元素,HTML服务器控件和基本的服务器控件和基本的HTML元素元素是对应的。是对应的。使用使用Web服务器控件时,从服务器方的角度来看根本不知道最终服务器控件时,从服务器方的角度来看根本不知道最终控件会在浏览器中用什么样的控件会在浏览器中用什么样的HTML元素显示出来,显示一个元素显示出来,显示一个Web服务器控件可能需要组合多个服务器控件可能需要组合多个HTML元素,也就是说浏览器元素,也就是说浏览器显示什么样的显示什么样的HTML元素对服务端是透明的。元素对服务端是透明的。HTML服务器控件提供了操纵浏览器服务器控件提供了操纵浏览器HTML元素的机会。元素的机会。3.2HTML服务器控件服务器控件【例例】新建一个新建一个Web项目,将位置栏中的项目名改为项目,将位置栏中的项目名改为TestHTML。从。从【工具箱工具箱】中的中的HTML栏内添加一个栏内添加一个Button控件,切换到控件,切换到Web窗体的窗体的HTML对话框,将会显对话框,将会显示示aspx文件的内容,如以下代码所示:文件的内容,如以下代码所示:无标题页无标题页3.2HTML服务器控件服务器控件该该Button控件在控件在aspx文件里直接对应着一个文件里直接对应着一个HTML元元素,因此会不加处理地直接传给浏览器,其他的素,因此会不加处理地直接传给浏览器,其他的HTML控件也与此类似。控件也与此类似。也可以在服务器端处理也可以在服务器端处理HTML服务器控件的事件,不服务器控件的事件,不过要先使它们能在服务器端运行。在上面的例子的过要先使它们能在服务器端运行。在上面的例子的Web窗体的设计对话框中右击窗体的设计对话框中右击Button控件,从中选择控件,从中选择【作为服务器控件运行作为服务器控件运行在在Button控件的左上方会出现一个小绿色箭头,它就控件的左上方会出现一个小绿色箭头,它就表明该控件将作为服务器控件运行,这时在表明该控件将作为服务器控件运行,这时在aspx文件文件里对应的行变成:里对应的行变成:3.2HTML服务器控件服务器控件 使HTML控件作为服务器控件运行 3.2HTML服务器控件服务器控件通过加入通过加入runat=“server”使它从简单的使它从简单的HTML元素变成了元素变成了HTML服务器服务器控件,这样就可以像控件,这样就可以像Web服务器对它进行服务器端编程。在上面的设计服务器对它进行服务器端编程。在上面的设计对话框中双击对话框中双击Button控件将切换到代码编辑对话框,在控件将切换到代码编辑对话框,在Button1_ServerClick方法下填写如下代码:方法下填写如下代码:privatevoidButton1_ServerClick(objectsender,System.EventArgse)/改变按钮标签改变按钮标签Button1.Value=Click;运行这个程序,单击运行这个程序,单击Button按钮,页面刷新过后按钮,页面刷新过后Button按钮的标签就按钮的标签就变成了变成了Click。该。该Button按钮的回发也是由客户端脚本程序产生的,可按钮的回发也是由客户端脚本程序产生的,可以使用上面介绍查看浏览器内容的方法来具体看一下实现过程,这些客以使用上面介绍查看浏览器内容的方法来具体看一下实现过程,这些客户端脚本程序是户端脚本程序是Web服务器处理服务器处理ASP.NET程序时产生的。程序时产生的。现在就面临着如何在现在就面临着如何在Web服务器控件和服务器控件和HTML服务器控件直接选择的问服务器控件直接选择的问题,这里建议如果偏爱使用题,这里建议如果偏爱使用RAD编程模型的话最好使用编程模型的话最好使用Web服务器控件,服务器控件,如果想更好地控制浏览器的显示,与客户端脚本程序交互,那么就请用如果想更好地控制浏览器的显示,与客户端脚本程序交互,那么就请用HTML服务器控件。服务器控件。web服务器控件服务器控件HTML服务器控件和服务器控件和HTML控件的区别(控件的区别(1)Html控件控件最常用最常用,出现最早出现最早web服务器控件服务器控件(ASP.NETServerControl)与与WinForm开发相似开发相似HTML服务器控件服务器控件(HTMLServerControl)向下兼容向下兼容基于基于ASP系统的移植而推出的介于以上两者之间系统的移植而推出的介于以上两者之间的权宜产物的权宜产物web服务器控件服务器控件HTML服务器控件和服务器控件和HTML控件的区别(控件的区别(2)Html控件的标签控件的标签Html服务器控件的标签服务器控件的标签Html服务器控件其实就是服务器控件其实就是Html控件的基础上加上控件的基础上加上runat=server所构成的控件所构成的控件Web服务器控件的标签服务器控件的标签Web服务器控件会根据情况在浏览器端产生一个或多个对应服务器控件会根据情况在浏览器端产生一个或多个对应的的Html标签标签web服务器控件服务器控件HTML服务器控件和服务器控件和HTML控件的区别(控件的区别(3)Html控件不能在服务器端控制,只能在浏览器端通过控件不能在服务器端控制,只能在浏览器端通过javascript等脚本语言操作等脚本语言操作Html服务器控件设定了服务器控件设定了runat=server属性后,页面对象属性后,页面对象会将该控件载入控制器,服务器端的代码就能对其进行控制会将该控件载入控制器,服务器端的代码就能对其进行控制Html服务器控件在页面执行完毕后会被转换成服务器控件在页面执行完毕后会被转换成Html标注,然标注,然后当成字符串流发送到浏览器端,浏览器端的脚本能够进行后当成字符串流发送到浏览器端,浏览器端的脚本能够进行操作。操作。Web服务器控件的操作则是由页面把服务器控件的操作则是由页面把Form发回服务器,然后发回服务器,然后完全由服务器端代码处理完全由服务器端代码处理web服务器控件服务器控件HTML服务器控件和服务器控件和HTML控件的区别(控件的区别(4)Html控件不能在服务器端控制,只能在浏览器端通过控件不能在服务器端控制,只能在浏览器端通过javascript等脚本语言操作等脚本语言操作Html服务器控件设定了服务器控件设定了runat=server属性后,页面对象属性后,页面对象会将该控件载入控制器,服务器端的代码就能对其进行控制会将该控件载入控制器,服务器端的代码就能对其进行控制Html服务器控件在页面执行完毕后会被转换成服务器控件在页面执行完毕后会被转换成Html标注,然标注,然后当成字符串流发送到浏览器端,浏览器端的脚本能够进行后当成字符串流发送到浏览器端,浏览器端的脚本能够进行操作。操作。Web服务器控件的操作则是由页面把服务器控件的操作则是由页面把Form发回服务器,然后发回服务器,然后完全由服务器端代码处理完全由服务器端代码处理Web服务器控件、服务器控件、Html服务器控件服务器控件和和Html控件的优缺点控件的优缺点Html控件和控件和Html服务器控件需要编码以保持浏览器兼容。服务器控件需要编码以保持浏览器兼容。Web服务器控件能够检测浏览器的兼容性,保持表现的一致服务器控件能够检测浏览器的兼容性,保持表现的一致Html服务器控件通过为服务器控件通过为Html控件添加控件添加runat=server以实以实现现ASP程序的移植。程序的移植。将将ASP程序移植成使用程序移植成使用Web服务器控件的服务器控件的ASP.Net程序相当程序相当于重写新的应用于重写新的应用Html控件和控件和Html服务器控件是标准控件,能够用浏览器端服务器控件是标准控件,能够用浏览器端脚本语言操作。脚本语言操作。使用使用Web服务器控件提供的对象模型,能够得到和服务器控件提供的对象模型,能够得到和WinForm类似的编程体验,而且无需再学习不同的脚本语言。类似的编程体验,而且无需再学习不同的脚本语言。Web服务器内部的代码并不开放,你无法获得比较直接的控服务器内部的代码并不开放,你无法获得比较直接的控制制Web服务器控件、服务器控件、Html服务器控件服务器控件和和Html控件控件小结小结Html服务器控件作为一个过渡的实现,虽然能够兼顾浏览器服务器控件作为一个过渡的实现,虽然能够兼顾浏览器端和服务器端,终究是一个奇怪的存在,尽量少使用为妙端和服务器端,终究是一个奇怪的存在,尽量少使用为妙从微软的角度,良好封装的从微软的角度,良好封装的Web服务器控件提供了大量的便服务器控件提供了大量的便利,同时利,同时WebForm和和WinForm开发模式的差异使得相互开发模式的差异使得相互的经验能够互通,当然是多使用的经验能够互通,当然是多使用Web服务器控件为好。不过服务器控件为好。不过Web服务器控件的缺点是占用服务器资源,页面服务器控件的缺点是占用服务器资源,页面Postback过过多多存在的就是合理的,存在的就是合理的,Html还是要会地,还是要会地,Javascript当然是要当然是要好好学地,好好学地,Web开发各种奇奇怪怪的标签共存于开发各种奇奇怪怪的标签共存于Page中的场中的场面短时间内是不可能消失地面短时间内是不可能消失地3.3验证控件验证控件ASP.NET提供了多种验证控件提供了多种验证控件这些验证控件都支持服务器端验证,如果浏览器支持这些验证控件都支持服务器端验证,如果浏览器支持DHTML的话也可提供客户端验证。如果运用得当客户的话也可提供客户端验证。如果运用得当客户端验证可以有效地减少与服务器端的交互,极大地提端验证可以有效地减少与服务器端的交互,极大地提高高Web应用程序的性能。应用程序的性能。验证控件通常要认证其他控件的有效性,因而必须和验证控件通常要认证其他控件的有效性,因而必须和其他控件一起使用,它们都具有一个属性其他控件一起使用,它们都具有一个属性ControlToValidate来指定要验证的控件,这个值是来指定要验证的控件,这个值是必需的,否则验证控件将会出错必需的,否则验证控件将会出错3.3验证控件验证控件名名 称称描描 述述RequiredFieldValidator确保用确保用户户不会跳不会跳过过某一某一项项CompareValidator使用比使用比较较运算符运算符(小于、等于、大于等小于、等于、大于等)比比较较用用户户的的输输入与一个常量入与一个常量值值或另一控件的属性或另一控件的属性值值RegularExpressionValidator检查项检查项与正与正则则表达式定表达式定义义的模式是否匹配。的模式是否匹配。这这种种验证类验证类型允型允许检查许检查可可预预知的字符序列,如知的字符序列,如社会保障号、社会保障号、电电子子邮邮件地址、件地址、电话电话号号码码、邮邮政政编码编码等中的字符序列等中的字符序列CustomValidator使用自己使用自己编编写的写的验证逻辑检查验证逻辑检查用用户户的的输输入入ValidationSummary在一个在一个统统一摘要中一摘要中显显示示页页上所有其他上所有其他验证验证控件控件的的错误错误信息信息RangeValidator检查检查用用户户的的输输入是否在指定的上下限内。可以入是否在指定的上下限内。可以检查检查数字数字对对、字母字符、字母字符对对和日期和日期对对的范的范围围。边边界可以表示界可以表示为为常数或从其他控件常数或从其他控件导导出的出的值值3.3验证控件验证控件-示例示例【例例】打开打开VisualStudio.NET新建一个新建一个Web应用程序项目,命名为应用程序项目,命名为Validator。向。向Web窗体中添加标签控件、输入控件和验证控件。窗体中添加标签控件、输入控件和验证控件。依次放入依次放入5个标签控件,设定它们的个标签控件,设定它们的Text属性分别为属性分别为“姓名姓名”、“年龄年龄”、“密码密码”、“确认密码确认密码”和和“E-mail”。在标签控件之后依次放入。在标签控件之后依次放入5个输入框控件,它们的个输入框控件,它们的ID在默认在默认状态下会自动设为状态下会自动设为TextBox1、TextBox2、TextBox3、TextBox4和和TextBox5。设。设定定TextBox3和和TextBox4的的TextMode属性为属性为Password。在在TextBox1、TextBox2、TextBox4和和TextBox5控件后分别放入一个控件后分别放入一个RequiredFieldValidator验证控件,分别将这些验证控件,分别将这些RequiredFieldValidatork控件的控件的ErrMessage属性设定为属性设定为“姓名不能为空姓名不能为空”、“年龄不能为空年龄不能为空”、“密码不能为空密码不能为空”和和“E-mail不能为空不能为空”,ControlToValidate属性分别设置为属性分别设置为TextBox1、TextBox2、TextBox4和和TextBox5。TextBox2后再放入一个后再放入一个RangeValidator验证控件其验证控件其ErrMessage属性设为属性设为“值不合法值不合法”,ControlToValidate属性设为属性设为TextBox2,MaximumValue属性设为属性设为100,Minimum属性设为属性设为1,Type属性设为属性设为Integer。TextBox4后再放入一个后再放入一个CompareValidator控件,它的控件,它的ErrMessage属性设为属性设为“两次两次输入不一致输入不一致”,ControlToCompare属性设为属性设为TextBox3,ControlToValidtae属性设属性设为为TextBox4。Text5后再放一个后再放一个RegularExpressionValidator控件控件ErrMessage属性设为属性设为“输入不输入不正确正确”,ControlToValidator属性设为属性设为TextBox5,当在属性对话框选择,当在属性对话框选择ValidationExpress属性时会弹出属性时会弹出【正则表达式编辑器正则表达式编辑器】对话框,从中选择对话框,从中选择【Internet电子邮件地址电子邮件地址】最后向窗体中添加一个最后向窗体中添加一个Button控件和一个控件和一个ValidationSummary控件。控件。3.3验证控件验证控件-示例示例RequiredFieldValidator控件保证它所验证控件的输入不能为空控件保证它所验证控件的输入不能为空RangeValidator控件保证了它所验证控件的输入应在一定的范围内。在本例中保证在控件保证了它所验证控件的输入应在一定的范围内。在本例中保证在TextBox2中输入为中输入为1到到100之间的整型值。之间的整型值。CompareValidator控件将它验证的控件的内容与另一个控件或另一个值进行比较,控件将它验证的控件的内容与另一个控件或另一个值进行比较,在本例中使用了在本例中使用了ControlToCompare属性,以此来表明需要与另一控件相比较,默认属性,以此来表明需要与另一控件相比较,默认的比较操作属性的比较操作属性Operator的值是的值是Equal(相等相等),这样该控件的功能其实就是保证两次,这样该控件的功能其实就是保证两次密码输入相等。密码输入相等。RegularExpressionValidator保证控件的输入应满足特定的正则表达式规则,本例保证控件的输入应满足特定的正则表达式规则,本例指定为指定为“Internet电子邮件地址电子邮件地址”,即要求,即要求TextBox5中要输入一个电子邮件地址。这中要输入一个电子邮件地址。这些验证控件的些验证控件的EnableClientScript现在都默认为现在都默认为True,这就表明将生成浏览器脚本在,这就表明将生成浏览器脚本在客户端进行验证。客户端进行验证。运行程序,在验证控件对应的文本框中必须正确输入,否则将会在验证控件的位置出运行程序,在验证控件对应的文本框中必须正确输入,否则将会在验证控件的位置出现错误信息,在现错误信息,在ValidationSummary控件中则会显示出所有这些错误信息控件中则会显示出所有这些错误信息CustomValidator控件提供了用户自定义的功能,当上面的验证控件都无法满足要求控件提供了用户自定义的功能,当上面的验证控件都无法满足要求的时候就需要的时候就需要CustomValidator控件了。它提供了自定义客户端与服务器端验证的功控件了。它提供了自定义客户端与服务器端验证的功能,它包含有一个能,它包含有一个ClientValidationFunction属性和属性和ServerValidate事件,可以分别事件,可以分别与客户端和服务器端进行绑定,然后编写满足自己需要的验证函数与客户端和服务器端进行绑定,然后编写满足自己需要的验证函数3.3验证控件验证控件-验证控件的使用验证控件的使用3.3验证控件验证控件-正则表达式编辑器正则表达式编辑器3.3验证控件验证控件-程序的运行程序的运行3.4用户