数据绑定控件与数据源控件_第1页
数据绑定控件与数据源控件_第2页
数据绑定控件与数据源控件_第3页
数据绑定控件与数据源控件_第4页
数据绑定控件与数据源控件_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、第第10章章数据绑定控件与数据源控件本章要点本章要点数据源控件的概念及其用法编程实现数据绑定的方法GridView、DataList、Repeater、DetailsView、FormView控件用法ListView控件和DataPager控件的用法模板和数据绑定表达式的概念和用法10.1 概述概述Web应用程序一般都离不开数据库。ASP.NET提供了多个数据控件用来在WEB页面上展示数据库中的数据。数据控件主要分两类:数据绑定控件,用来在页面上显示数据;数据源控件,用来提供对不同类型数据源的访问,如数据库、XML文件或中间层业务对象,并从中检索数据。数据绑定控件可以绑定到数据源而无需手动编写

2、代码,降低了编程难度。数据源控件还支持修改数据的功能。常用的数据源控件用于访问Microsoft SQL Server、OLE DB、ODBC或Oracle数据库的SqlDataSource控件。用于访问SQL Server时,还支持高级缓存功能。当数据作为 DataSet 对象返回时,此控件还支持排序、筛选和分页。用于访问Microsoft Access数据库的AccessDataSource控件;用于访问XML文件的XmlDataSource控件;用于访问站点地图文件的SiteMapDataSource控件;N层架构应用程序下使用的ObjectDataSource控件等。数据绑定控件列表控

3、件BulletedList、 CheckBoxList、 DropDownList、 ListBox 、 RadioButtonList表格式数据绑定控件GridView 、 DataList 、 Repeater 、 DetailsView 、 FormView 、 ListView控件层次数据绑定控件Menu、TreeView控件10.2数据源控件数据源控件SqlDataSource类是基于ADO.NET构建的,它以声明控件的方式,而不是编程的方式使用这些对象。SqlDataSource控件属于不可见控件,即它放在页面上,但是不会呈现任何内容。通常需要将它和其他控件一起使用来显示和编辑数据

4、库数据,如GridView、FormView等控件,使用数据源控件可以快速构建ASP.NET WEB数据库应用程序,非常适合于初学者建立一些小型WEB站点。但是,在构建复杂的多层应用程序时,使用SqlDataSource等数据源控件并不合适。因为SqlDataSource数据源控件将数据访问层和用户界面层混在一起。如果要构建框架清晰的多层应用程序,就应该使用ObjectDataSource控件展现数据库数据,或自己通过编程手段实现。数据源控件应用举例数据源控件应用举例【例10-1】用户在系统中注册(regV3.aspx页面)时,需要填写学生详情信息,包括系别、专业和班级信息。当页面加载时,系统

5、首先初始化系别信息;当用户选择一个系别后,系统将在专业下拉框中显示该系别所有的专业;某一专业一旦被选中,班级列表框将显示该专业下所有的班级。学生详情界面设计如图10-1所示。数据库连接串的保存与使用数据库连接串的保存与使用表示对Web.config文件中ConnectionStrings节ConnectionString的引用。SqlDataSource控件支持的类型参数控件支持的类型参数Parameter表示一个任意的静态值。对应图10-9中【源】下拉框中的【None】;ControlParameter表示一个控件值或页面的属性值。对应图10-9中【源】下拉框中的【Control】;Cook

6、ieParameter表示浏览器的cookie值。对应图10-9中【源】下拉框中的【Cookie】;FormParameter表示一个HTML表单字段的值。对应图10-9中【源】下拉框中的【Form】;ProfileParameter表示一个配置文件属性值。对应图10-9中【源】下拉框中的【Profile】;QueryStringParameter表示查询字符串字段中的值。对应图10-9中【源】下拉框中的【QueryString】;SessionParameter表示一个存储在Session对象中的对象的值。对应图10-9中【源】下拉框中的【Session】;10.3 GridView控件控件

7、GridView控件是ASP.NET 2.0引入的一个新控件,是ASP.NET 1.x版本中DataGrid控件的升级版本。GridView是功能最多、最复杂、应用最广泛的ASP.NET控件之一。它可以用来显示、选择、排序、分页和编辑数据库记录。10.3.1 显示数据显示数据GridView控件将数据项呈现在一个HTML表格中,每个数据项呈现为一个独立的HTML行。GridView控件支持声明控件支持声明式数据绑定和编程式数据绑定。式数据绑定和编程式数据绑定。通过设置GridView控件的DataSourceId属性,将数据源控件关联到该GridView控件。如果使用编程式数据绑定方式,需要设

8、置GridView控件的DataSource属性,并调用DataBind方法。AutoGenerateColumns属性为true(默认为true),GridView控件可以根据数据源的内容自动生成绑定字段,如果字段类型为布尔类型,它将在页面上为其呈现一个复选框,其它类型的字段内容将直接呈现在页面上。【例10-2】使用编程式数据绑定方式,利用GridView控件展示“管理会员页面”(adminUsers.aspx)中的用户列表。GridView控件的字段类型控件的字段类型BoundField将数据项展现为文本。CheckBoxField将数据项展现为复选框。CommonField使用超级链接形

9、式支持编辑、删除或选中行。ButtonField将数据项项显示为按钮(可以为image按钮、link按钮或push按钮)。HyperLinkField将数据项显示为超级链接。ImageField将数据项显示为图片。TemplateField用于自定义数据项的展示。【例10-3】使用自定义字段定制GridView控件,显示学生信息。10.3.2 选择数据选择数据GridView控件允许用户选择其中的一行数据,通常使用该功能创建一个主从结构表。为了标识一行数据,在数据源中有主键的概念,为了实现选择数据功能以及在GridView控件中编辑、删除或修改数据,需要设置GridView控件的DataKey

10、Names属性。DataKeyNames属性在GridView控件中为每行关联一个值,可以直接指定一个数据列的名称或者使用逗号隔开的列名列表作为属性值。通常情况下,将数据源的主键列名赋值给DataKeyNames属性。【例10-4】在【例10-3】的基础上添加一个选择列,当点击某一行上的【选择】链接时,在该列表的右边显示学生的详细信息。10.3.3 数据分页数据分页如果要显示的数据量比较大,把这些数据分在在不同的页面显示是比较有效的方法。将GridView控件的AllowPaging属性设置为真就可以启用分页功能。此外,还需要设置PageSize属性,指定每页显示记录的条数。PageIndex

11、属性表示当前选中页的索引(从零开始)。PagerSettings属性用来设置分页界面的外观。PagerSettings类几个属性FirstPageImageUrl第一页按钮显示的图像URL。FirstPageText第一页按钮显示的文字。LastPageImageUrl最后一页按钮显示的图像URL。LastPageText最后一页按钮显示的文字。Mode分页显示模式,值可以为NextPrevious、NextPreviousFirstLast、Numeric、NumericFirstLast。NextPageImageUrl下一页按钮显示的图像URLNextPageText下一页按钮显示的文字

12、。PageButtonCount页按钮的数量。Position分页界面的显示位置,可以是Bottom、Top和TopAndBottom。PreviousePageImageUrl上一页按钮显示的图像URL。PreviousePageText上一页按钮显示的文字。Visible是否显示分页界面。PagerSettings类FirstPageImageUrl、FirstPageText、LastPageImageUrl、LastPageText、NextPageImageUrl、NextPageText、PreviousePageImageUrl、PreviousePageText属性只有分页显示

13、模式Mode设置为NextPreviousFirstLast才有效。如果设置了xxxImageUrl属性,分页按钮将会忽略与之对应的xxxText属性并显示该图片,否则显示xxxText属性的值。当Mode属性设置为NextPrevious时,仅显示NextPageImageUrl、NextPageText、PreviousePageImageUrl、PreviousePageText属性值。当Mode属性设置为Numeric、NumericFirstLast时,页面上将显示页码相关信息,页按钮的数量有PageButtonCount属性值决定。【例10-5】在【例10-4】的基础上为gvStu

14、dent控件增加自定义分页功能。10.3.4 编辑数据编辑数据GridView控件除了显示数据外,还支持编辑数据。GridView在编辑模式下,每一行都显示一个“编辑”按钮,当用户点击该按钮时,当前行的每个单元格中的数据都会显示在一个可编辑控件(如TextBox控件、CheckBox控件或者用户自己定义的其他DropDownList控件等)内。此时“编辑”按钮变为“更新”和“取消”按钮。用户可以修改单元格中的内容,修改完毕后,点击“更新”按钮,保存修改内容,或点击“取消”按钮,放弃修改的内容。10.3.4 编辑数据编辑数据当GridView控件绑定到一个数据源控件时,如SqlDataSourc

15、e控件,只需要将AutoGenerateEditButton属性设置为True即可启用编辑功能,将AutoGenerateDeleteButton属性设置为True可以启用删除功能,不需要用户编写代码,但需要配置好数据源控件。此外,GridView控件还支持通过编程的方式添加编辑和删除功能。此时需要手动添加编辑和删除列,并且需要编写代码响应RowDeleting、RowUpdating、RowEditing等事件。【例10-6】在【例10-5】的基础上,通过编程方式为gvStudent控件增加编辑和删除功能。10.4 Repeater控件控件Repeater控件是一个容器控件,用于创建自定义列

16、表。Repeater控件不具备内置的呈现功能,因此,必须通过创建模板为Repeater控件提供布局、格式设置和样式标记。当包含Repeater控件的页面运行时,Repeater控件依次为数据源中的每个记录呈现一个项。模 板说 明ItemTemplate此模板为必选模板。包含要为数据源中每个数据项都要呈现一次的HTML元素和控件。AlternatingItemTemplate使用此模板为交替项创建不同的外观,例如指定一种与ItemTemplate不同颜色的背景色。SeparatorTemplate包含在每项之间呈现的元素。例如可能是一条直线(使用元素)。HeaderTemplate列表的开始处呈

17、现的文本和控件。仅呈现一次。FooterTemplate列表的结束处呈现的文本和控件。仅呈现一次。Repeater应用举例【例10-7】利用Repeater控件实现首页音乐排行列表。实现效果如图10-23所示。数据绑定表达式在ASP.NET中,大部分数据绑定控件都支持模板。如Repeater、DataList、FormView,都必须使用模板,否则无法显示数据。GridView、DetailsView和Menu控件也支持模板,但不是必需的。数据绑定表达式是一种特殊的表达式,它直到运行时才计算出结果。在页面代码中使用数据绑定表达式的方法是将表达式包含在符号之间。 等价于在数据绑定表达中,除了可以

18、调用Eval方法外还可以调用其他方法或变量。 10.5 DataList控件控件DataList控件与Repeater控件一样都是由模板驱动的。但是和Repeater控件不同,DataList控件默认输出一个HTML表格,因此在使用DataList控件的时候可以做更多的格式化设置。DataList的RepeatLayout属性默认为Table,即输出为一个表格。还可以修改为Flow,表示在HTML标签中中输出数据。DataList控件可以把内容显示为多列表格,每个数据项占用一个单元格。以下两个属性控制DataList控件输出布局:RepeatColumns显示的列数;RepeatDirecti

19、on输出网格的方向,Horizontal表示横向,Vertical表示纵向。DataList模板DataList控件除了和Repeater控件一样,支持ItemTemplate、AlternatingItemTemplate、SeperatorTemplate、HeaderTemplate和FooterTemplate模板外,还支持另外两个模板:EditItemTemplate当进入编辑状态时显示;SelectedItemTemplate当列被选中时显示。【例10-8】应用DataList控件显示首页中最新注册用户列表。10.6 DetailsView控件控件DetailsView控件用于一次

20、处理一条数据记录。可以用来显示、编辑、插入和删除数据项。DetailsView控件将一条记录中的每一列都呈现为一个独立的HTML表格行。和GridView等数据绑定控件一样,DetailsView控件也支持声明式数据绑定和编程式数据绑定,并且DetailsView控件中使用的字段类似于GridView控件的Column,DetailsView控件的字段包括BoundField、CheckBoxField、CommandField、ButtonField、HyperLinkField、ImageField和TemplateField。当DetailsView控件的AutoGenerateRows

21、属性设置为false时,DetailsView控件不会自动为记录中的每一列创建一行来呈现数据,否则将自动创建一行。当使用字段自定义DetailsView控件外观时,需要将AutoGenerateRows设置为False。DetailsView控件应用举例控件应用举例【例10-9】在10.2.2选择数据一节中,为GridView控件添加了选择功能。当用户点击某一行的【学生详情】链接按钮时,希望在右边显示其详细信息。但是,在【例10-4】中仅仅使用了一个Label控件显示了用户的简单信息。现在使用DetailsView控件显示用户的详细注册信息。FormView控件控件和DetailsView控件

22、一样,FormView控件也用于一次处理一条数据记录,并且可以显示、编辑、插入和删除数据项。不同之处在于,DetailsView控件将一条记录中的每一列都呈现为一个独立的HTML表格行,而FormView控件则完全由模板驱动。相比较而言,使用FormView控件需要更多的编码,正因如此,FormView控件可以有更多的设置,完成更灵活的页面布局。FormView控件通常结合数据源控件完成记录的更新和插入操作,FormView控件的DefaultMode属性用于设置该控件的默认模式,在执行取消、插入和更新命令后恢复为该模式。和DetailsView控件一样,FormView控件还通常用于主/从方

23、案中。FormView模板模 板说 明ItemTemplate项模板。定义只读模式下的数据行显示界面。EditItemTemplate编辑模板,定义编辑模式下的数据行显示界面。InsertItemTemplate插入模板,与编辑模板相似,控制用户在后端数据源中添加一条新记录时的字段显示。EmptyDataTemplate空数据模板。当数据源中没有数据时,显示此模板中的内容。HeaderTemplate标题模板。FooterTemplate表尾模板。PagerTemplate分页模板。用于控制分页。FormView控件应用举例应用举例FormView和DetailsView控件都可以自动对其关联

24、数据源中的数据以一次一个记录的方式进行翻页。如果将FormView控件的AllowPaging属性设置为【True】,则FormView控件可自动添加用于分页的用户界面 (UI) 控件。也可以通过添加PagerTemplate模板来自定义用于分页的用户界面。在FormView控件中,一个数据页就是一条绑定记录。【例10-10】利用FormView控件,结合SqlDataSource数据源控件完成专业的添加、删除和修改功能。当使用 DataSourceID 属性绑定到数据源时,FormView 控件支持双向数据绑定。除可以使该控件显示数据之外,还可以使它自动支持对绑定数据的插入、更新和删除操作,

25、前提是用户必须配置好数据源控件以支持编辑功能。10.8 ListView控件控件ListView控件是ASP.NET 3.5中新引入的控件,可以绑定从数据源返回的数据项并显示它们。这些数据可以显示在多个页面或者在一个页面逐个显示数据项,也可以对它们分组。ListView控件会按照顶一顶模板和样式显示数据。与DataList和Repeater控件相似,此控件也适用于任何具有重复结构的数据。但与这些控件不同的是,ListView控件允许用户编辑、插入和删除数据,以及对数据进行排序和分页,并且所有这一切都无需编写代码。可以说,ListView就是DataGrid和Repeater的结合体,它既有Re

26、peater控件的开放式模板,又具有DataGrid控件的编辑特性。ListView控件并不直接支持分页,需要借助下一节讲述的DataPager控件完成分页功能。ListView模板LayoutTemplate :布局模板。定义ListView控件的布局,必须包含一个充当数据占位符的控件。例如,该布局模板可以包含ASP.NET Table、Panel或Label控件(它还可以包含runat属性设置为“server”的table、div或span元素)。这些控件将包含ItemTemplate模板所定义的每个项的输出,还可以在GroupTemplate模板定义的内容中对这些输出进行分组。ItemT

27、emplate :项模板。标识要为各个项显示的数据绑定内容。此模板包含的控件通常已绑定到数据列或其他单个数据元素上。ItemSeparatorTemplate :标识要在各个项之间呈现的内容。AlternatingItemTemplate :交替项模板。标识为便于区分连续项,而为交替项呈现的内容。SelectedItemTemplate :为区分所选数据项与显示的其他项,而标识该所选项呈现的内容。ListView模板EmptyItemTemplate :标识在使用GroupTemplate模板为空项时呈现的内容。EmptyDataTemplate:标识在数据源没有返回数据时要呈现的内容。Gro

28、upTemplate :分组模板。标识组布局的内容。它包含一个占位符对象,例如表单元格 (td)、div或span。该对象将由其他模板(例如 ItemTemplate 和 EmptyItemTemplate 模板)中定义的内容替换。GroupSeparatorTemplate:标识项组之间呈现的内容。EditItemTemplate :标识要在编辑项时呈现的内容。对于正在编辑的数据项,将呈现EditItemTemplate模板的内容以替代ItemTemplate模板的内容。InsertItemTemplate:标识要在插入项时呈现的内容。将在ListView控件显示的项的开始或末尾处呈现Ins

29、ertItemTemplate模板,以替代ItemTemplate模板。通过使用ListView控件的InsertItemPosition属性,可以指定InsertItemTemplate模板的呈现位置。ListView控件应用举例【例10-11】使用ListView控件完成班级信息的管理功能(adminClasses.aspx)。10.9 DataPager控件控件DataPager控件也是ASP.NET 3.5中新引入的控件,用于为实现了IPageableItemContainer接口的数据绑定控件显示导航控件。ListView控件就是实现该接口的一个控件。可以通过使用DataPager控件的PagedControlID属性将DataPager控件与数据绑定控件关联起来。也可以选择将DataPager控件置于数据绑定控件层次结构的内部。例如,在ListView控件中,可以将DataPager控件置于ListView.:.LayoutTemplate模板内部。可以通过更改PageSize属性自定义为每个数据页显示的项数。也可以通过设置QueryStringField属性更改将页面提交给服务器的方式。DataPa

温馨提示

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

评论

0/150

提交评论