为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

ASP.NET服务器控件

2010-10-14 39页 ppt 425KB 24阅读

用户头像

is_916519

暂无简介

举报
ASP.NET服务器控件null第5章 ASP.NET服务器控件 第5章 ASP.NET服务器控件 服务器控件就是在服务器端解析的控件,在ASP.NET中,服务器控件也就是标记有runat=server标记的控件,这些控件经过处理后会生成客户端呈现代码发送到客户端。服务器端示意图如图所示。5.1 HTML服务器控件5.1 HTML服务器控件传统的HTML元素是不能被ASP.NET服务器端直接使用的,但是通过将这些HTML元素的功能进行服务器端的封装,开发人员就能很轻松的在服务器端使用这些HTML元素。5.1.1 HTML服务器控件简...
ASP.NET服务器控件
null第5章 ASP.NET服务器控件 第5章 ASP.NET服务器控件 服务器控件就是在服务器端解析的控件,在ASP.NET中,服务器控件也就是标记有runat=server标记的控件,这些控件经过处理后会生成客户端呈现代码发送到客户端。服务器端示意图如图所示。5.1 HTML服务器控件5.1 HTML服务器控件传统的HTML元素是不能被ASP.NET服务器端直接使用的,但是通过将这些HTML元素的功能进行服务器端的封装,开发人员就能很轻松的在服务器端使用这些HTML元素。5.1.1 HTML服务器控件简介5.1.1 HTML服务器控件简介HTML服务器控件位于System.Web.UI.HtmlControls命名空间中,在该命名空间中,包含大约二十多个HTML控件类,根据类型可以分为HTML输入控件,HTML容器控件。事实上页面上的任何元素都可以通过添加属性runat="server"来转换为HTML服务器控件,如果这些HTML元素没有相应的服务器端的类,ASP.NET将使用HtmlGenericControl类来示HTML服务器控件。 HTML服务器控件的层次结构如图5.3所示,从图中可以看到,所有的HTML服务器控件都继承自HtmlControl基类,该类提供了所有的Html服务器控件都具有的基本的方法和属性,表列出了HtmlControl控件提供的基本属性。HtmlControl控件的基本属性5.1.2 HtmlContainerControl和HtmlInputControl类5.1.2 HtmlContainerControl和HtmlInputControl类HtmlContainerControl类是所有容器控件的基类,HTML容器控件是指在其控件中可以包含其他HTML内容或控件,比如HtmlTable控件,Div控件。如果HTML控件本身没有对应的HTML控件类,可以在开发时使用HtmlGenericControl类,该类本身就是派生自HtmlContainerControl类。 HtmlContainerControl控件类具有如表5.2所示的重要属性:HtmlContainerControl控件属性5.1.3 HTML控件类5.1.3 HTML控件类本小节将列出可供使用的HTML服务器控件类,以及其对应的Html标签,如表所示。表5.4 HTML服务器控件类5.1.4 编程创建HTML控件5.1.4 编程创建HTML控件使用HTML控件类,开发人员可以使用面向对象的方式来动态创建HTML服务器控件,使用对象的方式设置控件的属性,最后将控件添加到页面容器的控件集合(本书第4章曾经介绍过Page类是一个容器类)。 下面将创建一个简单的例子演示如何动态创建一个HtmlTable对象,新建一个ASP.NET Web网站,命名为DynamicCreateHtmlControls,进入Default.aspx的后置代码文件,在Page_Load事件中添加如下所示的程序代码。5.1.5 处理服务器端事件5.1.5 处理服务器端事件尽管己经为HTML控件添加了runat=”server”标记,但是在VS2008的属性窗口中是看不到有任何事件列表的,而且如果像常规WEB控件那样双击服务器端控件以生成代码框架,VS2008生成的仍然是客户端的代码框架,下面的代码是一个服务器端的HtmlInputButton控件的单击事件代码框架,HTML服务器控件事件5.2 Web服务器控件5.2 Web服务器控件Web服务器控件是ASP.NET应用程序中最常使用的控件,Web服务器控件位于System.Web.UI.WebControls命名空间中。所有的Web服务器控件都从WebControl基类派生,与HTML服务器控件相比,Web控件提供一个相对抽象的,一致的编程模型。相对抽象是指Web服务器控件不必像HTML控件一样必须一一对应一个HTML标签,事实上很多复杂的Web服务器控件所输出的客户端代码非常复杂。Web服务器控件也具有一些独有的特性,比如自动回发特性等等。5.2.1 基本Web服务器控件介绍5.2.1 基本Web服务器控件介绍如果读者熟悉Windows应用程序的开发,一定很熟悉基础的控件集合,比如Lables、Buttons和TextBox,ASP.NET中同样的提供了这些标准的Web服务器控件。基本Web服务器控件复制了每个HTML服务器控件的功能,这些控件都继承自WebControl控件并且添加了属于控件自身的属性和事件。基本的Web服务器控件如表所示。5.2.2 常用控件的属性介绍5.2.2 常用控件的属性介绍下面对一些常用的Web控件的几个比较特殊的属性和方法进行讨论,笔者不打算以字典的形式对每个控件的每个属性方法进行列举,当开发人员使用VS2008进行ASP.NET Web应用程序的开发时,可以借助强大且中文化过的MSDN,或者是参考由Stephen Walther编著的《ASP.NET 3.5揭密》一书。 1.TextBox控件 2.默认按钮 3.滚动面板5.2.3 列表控件介绍5.2.3 列表控件介绍列表控件是一类特殊的控件,这类控件能够同时显示多行数据,比如一个列表框、下拉列表框等等,这些控件可以绑定到数据源以显示多行数据,或者通过编程的方式为其填入数据。多数列表控件允许用户选择一个或多个列表项,除了BulletedList,该控件显示一个静态的编号列表。ASP.NET中的列表控件5.2.4 可选择的列表控件5.2.4 可选择的列表控件在本节开头,曾经介绍过大多数控件都允许用户进行选择项,除了BulletedList控件。因此把那些能够让用户选择的列表控件称为可选择列表控件,这些控件具有额外的属性和方法让响应用户的选择事件。例如可以将可选择列表控件的SectionMode属性设置为Multiple,这样将允许用户进行多项选择。在可选择的控件中,RadioButtonList和CheckBoxList提供了额外的布局选项,使该控件能呈现多列的布局方式,表列出了这两个列表框控件的布局属性。RadioButtonList和CheckBoxList的布局属性5.2.5 BulletedList列表控件5.2.5 BulletedList列表控件BulletedList控件是列表控件中不可以被用户选择的控件,这个控件将呈现出类似于HTML的
      标签的格式。可以使用常用的列表控件的方法和属性操作BulletedList控件。除此之外,BulletedList控件提供了如表所示的布局属性:BulletedList的布局属性5.2.6 表格式控件5.2.6 表格式控件在介绍HTML服务器控件时,演示了如何使用HtmlTable、HtmlTableRow和HtmlTableCell来动态创建表格,Web服务器控件也提供了一个类似的Table控件,用于呈现一个表格。每个Table对象由一个或多个TableRow对象组成,每个TableRow又由一个或多个TableCell组成。在每个TableCell对象中,可以包含其他的ASP.NET控件或者是HTML显示内容。图显示了一个典型的表格的示意图。5.3 验证控件5.3 验证控件为了使开发的应用程序具有较强的健壮性,通常需要对各种输入控件进行验证。比如一个只能数字的文本框,就不能让用户随意的输入一些文本,或者是用户在不知不觉的状态下输入了错误的数据,数据被提交到服务器后,会导致ASP.NET引发一个异常。在ASP时代,为了防止用户随意的输入错误的数据,通常需要编写大量的JavaScript代码,在客户端提前预防错误。 ASP.NET提供了构建一套验证控件,可以以声明的方式来完成验证的过程,这些控件大多在客户端完成验证过程,也可以定义服务器的验证方式。5.3.1 验证控件介绍5.3.1 验证控件介绍ASP.NET 3.5提供了5种类型的验证控件,其中的四个用于对指定类型的错误进行验证,还有一个可以提供自定义验证。表提供了对这五种列表控件一一说明。ASP.NET验证控件5.3.2 验证的件的基类BaseValidator5.3.2 验证的件的基类BaseValidator验证控件位于System.Web.UI.Webcontrols命名空间中,所有的验证控件都派生自BaseValidator基类,这个类定义了验证控件的基本功能,如表所示。验证控件的基类的成员5.3.3 使用RequiredFieldValidator强制用户输入5.3.3 使用RequiredFieldValidator强制用户输入在用户注册窗口中,用户名和密码是用户必须输入的,因此在这两个TextBox框旁边分别添加一个RequiredFieldValidator控件,可以通过VS2008工具栏的验证栏来拖动该控件到页面的设计视图。只需要为RequiredFieldValidator控件的ControlToValidate属性指定文本框即可,声明代码如下所示: 用户注册窗口

      用户名:   
      密码:       
      重复密码:
      5.3.4 使用RangeValidator控件指定输入范围5.3.4 使用RangeValidator控件指定输入范围假定希望用户的真实年龄位于20-30岁之间,那么可以使用一个RangeValidator控件来将输入限制在指定的范围之内。从工具箱的验证栏中拖一个RangeValidator到真实年龄TextBox控件的旁边,将ControlToValidate属性设置为该TextBox控件,指定Type属性为Integer,将MinimumValue属性设置为20,将MaximumValue属性设置为30,声明代码如下所示: 真实年龄: 5.3.5 使用CompareValidator比较值5.3.5 使用CompareValidator比较值用户注册窗口要求重复密码框具有与密码输入框相同的密码,可以使用CompareValidator来进行比较验证。在重复密码文本框旁边添加一个CompareValidator控件,设置ControlToValidate属性为重复密码文本框,ControlToCompare属性设置为密码文本框,Type属性保留默认值为String。如果需要比较某个固定值,可以在ValueToCompare属性中输入要比较的值,声明代码如下所示: 重复密码: 5.3.6 RegularExpressionValidator正则表达式验证5.3.6 RegularExpressionValidator正则表达式验证在电子邮件一栏,希望用户能输入正确格式的电子邮件地址,可以借助于RegularExpressionValidator控件来实现验证,该控件需要指定一个正则表达式字符串。在电子邮箱文本框旁边添加一个RegularExpressionValidator控件,指定ControlToValidate属性。为ValidationExpression属性指定一个正则表达式,VS2008的属性窗口中,己经预置了几多种正则表达式,单击ValidationExpression属性旁边的按钮将弹出如图所示的窗口。5.3.7 CustomValidator自定义验证5.3.7 CustomValidator自定义验证CustomValidator可以让开发人员进行自定义的客户端验证或者是服务器端验证,CustomValidator具有一个重要的属性和一个事件。 ClientValidationFunction属性:指定一个用于完成客户端验证的函数名称。 ServerValidate事件:在该事件中添加要执行服务器端验证的代码。 下面继续示例程序,假定需要让中文姓名使用一个固定值,比如等于“许三多”,首先添加一个CustomValidator到中文姓名文本框旁边,指定ControlToValide和ErrorMessage属性的值。接下来在页面源代码的区上面添加如下所示的JavaScript代码,用于完成客户端验证。5.3.8 使用ValidationSummary显示验证信息5.3.8 使用ValidationSummary显示验证信息ValidationSummary提供了统一的显示验证错误信息的方式,该控件并不完成任何的验证工作。ValidationSummary控件显示每个验证控件的ErrorMessage属性的信息。可以在验证控件的Text属性中输入一个代表错误象征的符号,然后在ErrorMessage属性中输入错误的详细信息。 ValidationSummary可以在页面的某个位置统一显示错误消息,也可以使用一个弹出式的窗口显示错误信息。 只需要将ShowMessageBox属性设置为True即可,也可以同时将ShowSummary与ShowMessage设置为True,同时显示错误信息。DisplayMode属性可以设置显示的模式,可选值有SingleParagraph、List和BulletList,HeaderText属性可以设置错误概要的标题。5.3.9 使用ValidationGroup属性5.3.9 使用ValidationGroup属性对于很多复杂的页面来说,在同一页面可能有多个区分开来的控件组,比如页面上放置了多个Panel控件,每个Panel上面放置了一个TextBox控件和一个Button控件,如果希望点击某个Panel中的Button控件时,只对属于该Panel的TextBox执行验证的话,可以使用一个称为验证组(ValidationGroup)的属性。 下面新建一个名为ValidationGroupDemo的ASP.NET Web站点,在Default.aspx中放置3个Panel控件,在每个Panel控件中放一个TextBox控件,一个Button控件和一个RequiredFieldValidator控件。并在底部放一个ValidationSummary控件,5.3.10 编程使用验证控件 5.3.10 编程使用验证控件 与其他ASP.NET服务器控件一样,开发人员可以编程读取和修改验证控件的属性。为了访问页面上所有验证控件,可以使用Page.Validators集合属性来进行遍历。 下面将继续对上一个示例进行介绍,假定页面上有一个用于控制验证控件是否有效的开关控件CheckBox,当点击该复选框后将禁用所有的验证控件,可以进行如下的编码: protected void CheckBox1_CheckedChanged(object sender, EventArgs e) { //遍历页面上所有的验证控件 foreach (BaseValidator validator in Page.Validators) { //启用或禁用所有的验证控件 validator.Enabled = CheckBox1.Checked; //启用或禁用所有的客户端验证 validator.EnableClientScript = CheckBox2.Checked; } } 5.4 Calendar日期控件5.4 Calendar日期控件Calendar控件用于在页面上显示一个日历,该控件在ASP.NET应用程序开发中十分常用。Calendar控件主要可以完成如下两个方面的功能: 显示和选择日期 在日历网格中显示约会或其他信息 本节将详细讨论如何使用Calendar控件。5.4.1 日期控件简介5.4.1 日期控件简介在应用程序开发中,很多地方都需要使用日期控件。比如博客系统,一些生产制造系统例如生产工序排程等等。下面新建一个ASP.NET Web网站,命名为CalendarDemo,从工具箱的标准栏拖一个Calendar控件到Default.aspx页面,默认情况下,VS2008生成了如下的声明代码: 可以使用Calendar控件的智能标签按钮为Calendar控件选择一种外观,外观效果如图所示。5.4.2 日期控件格式化显示5.4.2 日期控件格式化显示Calendar控件提供了大量的格式化属性,可以让用户设置Calendar控件的多种不同的部分,比如日历头,选择方式和不同的日期类型,表列出了Calendar控件提供的样式属性。Calendar控件的样式属性5.4.3 限制日期5.4.3 限制日期Calendar控件可以很方便的限制用户所能选择的日期,为了完成这个工作,开发人员需要处理Calendar.DayRender事件,当Calendar显示到页面上时触发该事件。该事件提供了一个DayRenderEventArgs类型的参数,通过该参数的Day属性可以获取当前的日期,例如假定用户不能选择星期天这个日期,示例代码如下所示: protected void Calendar1_DayRender(object sender, DayRenderEventArgs e) { if (e.Day.IsWeekend) { //IsSelectable布尔属性控制日期是否可被选择 e.Day.IsSelectable = false; } }5.4.4 编程控制日期选择5.4.4 编程控制日期选择在Calendar中,可以利用SelectedDate属性以编程的方式来选择日期,例如可以在DayRender事件中添加如下的代码来选择当前日期加上2之后的日期: Calendar1.SelectedDate = DateTime.Now.AddDays(2).Date; 注意:以编程方式设置日期不会引发 SelectionChanged 事件。 也可以使用SelectedDates属性选择多个日期,这是一个SelectedDatesCollection类型的集合属性,可按任意顺序添加日期,因为集合将自动对日期进行排序。集合还强制实现唯一性,因此如果添加的日期已经存在于集合中,则集合将忽略该日期。5.5 广告轮询控件AdRotator5.5 广告轮询控件AdRotator广告轮询控件可以随机的显示不同的图片,每当有不同的页面请求时,AdRotator控件将从一组可能的图片中随机的选择一幅进行显示。该控件通常用于显示Banner样式的广告信息,但是也可以用来显示想要显示的任何其他类型的图片。事实上开发人员也可以在页面上放置一个Image控件,然后在Page.Load事件中添加随机显示图片的代码也可以实现类似的效果。5.5.1 广告文件设置5.5.1 广告文件设置AdRotator控件需要一个文告文件,在该文件中,存放了用于显示图片的列表信息,这是一个XML格式的文件,下面的示例代码是一个简单的AdRotator广告文件: Image/010.jpg Image/010.jpg 同事的小子 1 Baby 5.5.2 AdRotator类介绍5.5.2 AdRotator类介绍AdRotator提供了有限的属性,如下所示: AdvertisementFile:用于指定一个广告文件。 Target:用于指定一个目标框架,可选指有_blank,表示在一个新窗口中打开。_parent表示在当前框架的父框架中打开。_self在当前框架中打开。_top在当前窗口的顶层框架中打开。 KeywordFileter:选择一个指定的关键组来进行显示,关键组由文告文件中的Keyword指定。 AdRotator控件提供了一个名为AdCreated的事件,该事件触发于在控件创建后、呈现页面前,在每个到服务器的往返行程过程中产生一次。这个事件使开发人员可以通过编程的方式指定将要显示的图片,也可以在图片显示时提供一些图片的信息。5.6 MultiView和Wizare控件5.6 MultiView和Wizare控件如果读者熟悉Windows应用程序开发的话,一定有用过PageControl或者TabControl这类控件,这类控件在一个Form中可以布局多个视图,用户单击切换按钮就可以切换到不同的视图。在ASP.NET中,可以使用MultiView来实现类似的效果。Wizard控件可以在Web页面上实现向导效果,这两个控件非常实用,本节将详细的进行讨论。5.6.1 MultiView多视图控件5.6.1 MultiView多视图控件MultiView控件可以让开发人员定义多个视图,在同一时刻只显示其中一个。下面创建一个名为MultiViewDemo的示例ASP.NET Web站点来演示如何定义和使用MultiView控件。打开Default.aspx的设计视图,从工具箱的标准栏拖曳一个MultiView控件到设计视图。 接下来添加一个或多个到MultiView标签内部,代表着MultiView控件中的一个或多个视图,可以向里面添加任何的控件,声明代码如下所示: ... ... ... 5.6.2 Wizard向导控件5.6.2 Wizard向导控件Wizard控件与MultiView控件功能类似,使用这个控件来制作一些向导非常有用,比如创建一个用户注册向导。Wizard与MultiView相同,在同一时刻只能显示一个视图,Wizard提供了比MultiView更多的定制功能,比如导航按钮和模板功能等等。 下面举一个示例演示如何使用Wizard控件,新建一个ASP.NET的Web网站,命名为WizardDemo。打开Default.aspx文件,切换到设计视图,从工具箱中拖一个Wizard控件到设计视图。VS2008会自动弹出Wizard任务窗口,可以使用该窗口可视化的添加向导步骤,如图5.42所示。 自动套用格式任务项提供了多种由VS2008内定的格式可供选择,步骤下拉列表框列出了当前Wizard控件所拥有的步骤。添加/删除WizardSteps任务让开发人员可以可视化的添加步骤。5.6.3 WizardStep向导步骤属性5.6.3 WizardStep向导步骤属性Wizard提供了标准的向导页WizardStep和基于模板的向导页TemplateWizardStep可供选择,可以看到WizardStep提供了如下所示的几个属性可供设置。 Title属性:提供步骤的描述性名称,这个名称将作为一个链接显示在向导控件左边的SideBar栏上。 StepType属性:这是一个WizardStepType枚举类型的属性值,用于指定步骤的类型。这个属性值将决定导航按钮的类型。可选的值有Start,显示一个下一步按钮。Step,显示上一步和下一步按钮。Finish,显示完成和上一步按钮。Complete不显示按钮,并且隐藏SideBar。Auto,这个类型将根据在集合中的上下位置进行推断类型,默认值为Auto. AllowReturn属性:指定用户是否能返回到这一步骤。一旦用户经过这一步,将不能再跳回到这步骤。Sidebar的链接也不受影响。5.6.4 Wizard事件5.6.4 Wizard事件在示例应用程序中,己经设置好了Wizard控件的外观,但是现在该应用程序毫无用处,需要通过处理事件来完成整个注册的过程,Wizard控件提供了如表所示的几种事件。Wizard控件的事件5.7 5.7 小结本章介绍了ASP.NET应用程序中最重要的元素服务器控件,首先介绍了HTML服务器控件,这些控件具有与HTML标签一一对应的关系。接下来介绍了常用的Web服务器控件,以及一些非常有用的属性,并详细介绍了列表控件和表格式控件。 5.3节重点对ASP.NET中的验证控件进行了介绍,验证控件简化了用户进行验证的过程,本节对ASP.NET中的6个验证控件进行了示例的介绍。5.4节讨论了Calendar控件,这个控件可以呈现出一个日历,本节讨论了如何限制日期的选择并讨论了如何编程控制日期。5.5节讨论了广告轮询控件AdRotator,使用这个控件可以显示一组图片,每当请求时该控件将随机的呈现出XML文件中定义的一幅图片。5.6节讨论了两个多页面控件MultiView和Wizard。这两个控件可以以视图的形式放置多个控件。
/
本文档为【ASP.NET服务器控件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索