




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ASP.NET WEB 应用程序设计教程,第10章数据绑定控件与数据源控件,本章要点 数据源控件的概念及其用法 编程实现数据绑定的方法 GridView、DataList、Repeater、DetailsView、FormView控件用法 ListView控件和DataPager控件的用法 模板和数据绑定表达式的概念和用法,10.1 概述,Web应用程序一般都离不开数据库。ASP.NET提供了多个数据控件用来在WEB页面上展示数据库中的数据。数据控件主要分两类:数据绑定控件,用来在页面上显示数据;数据源控件,用来提供对不同类型数据源的访问,如数据库、XML文件或中间层业务对象,并从中检索数据。数据绑定控件可以绑定到数据源而无需手动编写代码,降低了编程难度。数据源控件还支持修改数据的功能。,常用的数据源控件,用于访问Microsoft SQL Server、OLE DB、ODBC或Oracle数据库的SqlDataSource控件。用于访问SQL Server时,还支持高级缓存功能。当数据作为 DataSet 对象返回时,此控件还支持排序、筛选和分页。用于访问Microsoft Access数据库的AccessDataSource控件;用于访问XML文件的XmlDataSource控件;用于访问站点地图文件的SiteMapDataSource控件;N层架构应用程序下使用的ObjectDataSource控件等。,数据绑定控件,列表控件 BulletedList、 CheckBoxList、 DropDownList、 ListBox 、 RadioButtonList 表格式数据绑定控件 GridView 、 DataList 、 Repeater 、 DetailsView 、 FormView 、 ListView控件 层次数据绑定控件 Menu、TreeView控件,10.2数据源控件,SqlDataSource类是基于ADO.NET构建的,它以声明控件的方式,而不是编程的方式使用这些对象。SqlDataSource控件属于不可见控件,即它放在页面上,但是不会呈现任何内容。通常需要将它和其他控件一起使用来显示和编辑数据库数据,如GridView、FormView等控件, 使用数据源控件可以快速构建ASP.NET WEB数据库应用程序,非常适合于初学者建立一些小型WEB站点。但是,在构建复杂的多层应用程序时,使用SqlDataSource等数据源控件并不合适。因为SqlDataSource数据源控件将数据访问层和用户界面层混在一起。如果要构建框架清晰的多层应用程序,就应该使用ObjectDataSource控件展现数据库数据,或自己通过编程手段实现。,数据源控件应用举例,【例10-1】用户在系统中注册(regV3.aspx页面)时,需要填写学生详情信息,包括系别、专业和班级信息。当页面加载时,系统首先初始化系别信息;当用户选择一个系别后,系统将在专业下拉框中显示该系别所有的专业;某一专业一旦被选中,班级列表框将显示该专业下所有的班级。学生详情界面设计如图10-1所示。,数据库连接串的保存与使用,表示对Web.config文件中ConnectionStrings节ConnectionString的引用。,SqlDataSource控件支持的类型参数,Parameter表示一个任意的静态值。对应图10-9中【源】下拉框中的【None】; ControlParameter表示一个控件值或页面的属性值。对应图10-9中【源】下拉框中的【Control】; CookieParameter表示浏览器的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控件,GridView控件是ASP.NET 2.0引入的一个新控件,是ASP.NET 1.x版本中DataGrid控件的升级版本。GridView是功能最多、最复杂、应用最广泛的ASP.NET控件之一。它可以用来显示、选择、排序、分页和编辑数据库记录。,10.3.1 显示数据,GridView控件将数据项呈现在一个HTML表格中,每个数据项呈现为一个独立的HTML行。GridView控件支持声明式数据绑定和编程式数据绑定。通过设置GridView控件的DataSourceId属性,将数据源控件关联到该GridView控件。如果使用编程式数据绑定方式,需要设置GridView控件的DataSource属性,并调用DataBind方法。 AutoGenerateColumns属性为true(默认为true),GridView控件可以根据数据源的内容自动生成绑定字段,如果字段类型为布尔类型,它将在页面上为其呈现一个复选框,其它类型的字段内容将直接呈现在页面上。 【例10-2】使用编程式数据绑定方式,利用GridView控件展示“管理会员页面”(adminUsers.aspx)中的用户列表。,GridView控件的字段类型,BoundField将数据项展现为文本。 CheckBoxField将数据项展现为复选框。 CommonField使用超级链接形式支持编辑、删除或选中行。 ButtonField将数据项项显示为按钮(可以为image按钮、link按钮或push按钮)。 HyperLinkField将数据项显示为超级链接。 ImageField将数据项显示为图片。 TemplateField用于自定义数据项的展示。 【例10-3】使用自定义字段定制GridView控件,显示学生信息。,10.3.2 选择数据,GridView控件允许用户选择其中的一行数据,通常使用该功能创建一个主从结构表。 为了标识一行数据,在数据源中有主键的概念,为了实现选择数据功能以及在GridView控件中编辑、删除或修改数据,需要设置GridView控件的DataKeyNames属性。DataKeyNames属性在GridView控件中为每行关联一个值,可以直接指定一个数据列的名称或者使用逗号隔开的列名列表作为属性值。通常情况下,将数据源的主键列名赋值给DataKeyNames属性。 【例10-4】在【例10-3】的基础上添加一个选择列,当点击某一行上的【选择】链接时,在该列表的右边显示学生的详细信息。,10.3.3 数据分页,如果要显示的数据量比较大,把这些数据分在在不同的页面显示是比较有效的方法。将GridView控件的AllowPaging属性设置为真就可以启用分页功能。此外,还需要设置PageSize属性,指定每页显示记录的条数。PageIndex属性表示当前选中页的索引(从零开始)。PagerSettings属性用来设置分页界面的外观。,PagerSettings类几个属性,FirstPageImageUrl第一页按钮显示的图像URL。 FirstPageText第一页按钮显示的文字。 LastPageImageUrl最后一页按钮显示的图像URL。 LastPageText最后一页按钮显示的文字。 Mode分页显示模式,值可以为NextPrevious、NextPreviousFirstLast、Numeric、NumericFirstLast。 NextPageImageUrl下一页按钮显示的图像URL NextPageText下一页按钮显示的文字。 PageButtonCount页按钮的数量。 Position分页界面的显示位置,可以是Bottom、Top和TopAndBottom。 PreviousePageImageUrl上一页按钮显示的图像URL。 PreviousePageText上一页按钮显示的文字。 Visible是否显示分页界面。,PagerSettings类,FirstPageImageUrl、FirstPageText、LastPageImageUrl、LastPageText、NextPageImageUrl、NextPageText、PreviousePageImageUrl、PreviousePageText属性只有分页显示模式Mode设置为NextPreviousFirstLast才有效。如果设置了xxxImageUrl属性,分页按钮将会忽略与之对应的xxxText属性并显示该图片,否则显示xxxText属性的值。 当Mode属性设置为NextPrevious时,仅显示NextPageImageUrl、NextPageText、PreviousePageImageUrl、PreviousePageText属性值。 当Mode属性设置为Numeric、NumericFirstLast时,页面上将显示页码相关信息,页按钮的数量有PageButtonCount属性值决定。 【例10-5】在【例10-4】的基础上为gvStudent控件增加自定义分页功能。,10.3.4 编辑数据,GridView控件除了显示数据外,还支持编辑数据。GridView在编辑模式下,每一行都显示一个“编辑”按钮,当用户点击该按钮时,当前行的每个单元格中的数据都会显示在一个可编辑控件(如TextBox控件、CheckBox控件或者用户自己定义的其他DropDownList控件等)内。此时“编辑”按钮变为“更新”和“取消”按钮。用户可以修改单元格中的内容,修改完毕后,点击“更新”按钮,保存修改内容,或点击“取消”按钮,放弃修改的内容。,10.3.4 编辑数据,当GridView控件绑定到一个数据源控件时,如SqlDataSource控件,只需要将AutoGenerateEditButton属性设置为True即可启用编辑功能,将AutoGenerateDeleteButton属性设置为True可以启用删除功能,不需要用户编写代码,但需要配置好数据源控件。 此外,GridView控件还支持通过编程的方式添加编辑和删除功能。此时需要手动添加编辑和删除列,并且需要编写代码响应RowDeleting、RowUpdating、RowEditing等事件。 【例10-6】在【例10-5】的基础上,通过编程方式为gvStudent控件增加编辑和删除功能。,10.4 Repeater控件,Repeater控件是一个容器控件,用于创建自定义列表。Repeater控件不具备内置的呈现功能,因此,必须通过创建模板为Repeater控件提供布局、格式设置和样式标记。当包含Repeater控件的页面运行时,Repeater控件依次为数据源中的每个记录呈现一个项。,Repeater应用举例,【例10-7】利用Repeater控件实现首页音乐排行列表。实现效果如图10-23所示。,数据绑定表达式,在ASP.NET中,大部分数据绑定控件都支持模板。如Repeater、DataList、FormView,都必须使用模板,否则无法显示数据。GridView、DetailsView和Menu控件也支持模板,但不是必需的。 数据绑定表达式是一种特殊的表达式,它直到运行时才计算出结果。在页面代码中使用数据绑定表达式的方法是将表达式包含在符号之间。 等价于 在数据绑定表达中,除了可以调用Eval方法外还可以调用其他方法或变量。 ,10.5 DataList控件,DataList控件与Repeater控件一样都是由模板驱动的。但是和Repeater控件不同,DataList控件默认输出一个HTML表格,因此在使用DataList控件的时候可以做更多的格式化设置。 DataList的RepeatLayout属性默认为Table,即输出为一个表格。还可以修改为Flow,表示在HTML标签中中输出数据。 DataList控件可以把内容显示为多列表格,每个数据项占用一个单元格。以下两个属性控制DataList控件输出布局: RepeatColumns显示的列数; RepeatDirection输出网格的方向,Horizontal表示横向,Vertical表示纵向。,DataList模板,DataList控件除了和Repeater控件一样,支持ItemTemplate、AlternatingItemTemplate、SeperatorTemplate、HeaderTemplate和FooterTemplate模板外,还支持另外两个模板: EditItemTemplate当进入编辑状态时显示; SelectedItemTemplate当列被选中时显示。 【例10-8】应用DataList控件显示首页中最新注册用户列表。,10.6 DetailsView控件,DetailsView控件用于一次处理一条数据记录。可以用来显示、编辑、插入和删除数据项。DetailsView控件将一条记录中的每一列都呈现为一个独立的HTML表格行。 和GridView等数据绑定控件一样,DetailsView控件也支持声明式数据绑定和编程式数据绑定,并且DetailsView控件中使用的字段类似于GridView控件的Column,DetailsView控件的字段包括BoundField、CheckBoxField、CommandField、ButtonField、HyperLinkField、ImageField和TemplateField。 当DetailsView控件的AutoGenerateRows属性设置为false时,DetailsView控件不会自动为记录中的每一列创建一行来呈现数据,否则将自动创建一行。当使用字段自定义DetailsView控件外观时,需要将AutoGenerateRows设置为False。,DetailsView控件应用举例,【例10-9】在10.2.2选择数据一节中,为GridView控件添加了选择功能。当用户点击某一行的【学生详情】链接按钮时,希望在右边显示其详细信息。但是,在【例10-4】中仅仅使用了一个Label控件显示了用户的简单信息。现在使用DetailsView控件显示用户的详细注册信息。,FormView控件,和DetailsView控件一样,FormView控件也用于一次处理一条数据记录,并且可以显示、编辑、插入和删除数据项。不同之处在于,DetailsView控件将一条记录中的每一列都呈现为一个独立的HTML表格行,而FormView控件则完全由模板驱动。相比较而言,使用FormView控件需要更多的编码,正因如此,FormView控件可以有更多的设置,完成更灵活的页面布局。 FormView控件通常结合数据源控件完成记录的更新和插入操作,FormView控件的DefaultMode属性用于设置该控件的默认模式,在执行取消、插入和更新命令后恢复为该模式。和DetailsView控件一样,FormView控件还通常用于主/从方案中。,FormView模板,FormView控件应用举例,FormView和DetailsView控件都可以自动对其关联数据源中的数据以一次一个记录的方式进行翻页。如果将FormView控件的AllowPaging属性设置为【True】,则FormView控件可自动添加用于分页的用户界面 (UI) 控件。也可以通过添加PagerTemplate模板来自定义用于分页的用户界面。在FormView控件中,一个数据页就是一条绑定记录。 【例10-10】利用FormView控件,结合SqlDataSource数据源控件完成专业的添加、删除和修改功能。 当使用 DataSourceID 属性绑定到数据源时,FormView 控件支持双向数据绑定。除可以使该控件显示数据之外,还可以使它自动支持对绑定数据的插入、更新和删除操作,前提是用户必须配置好数据源控件以支持编辑功能。,10.8 ListView控件,ListView控件是ASP.NET 3.5中新引入的控件,可以绑定从数据源返回的数据项并显示它们。这些数据可以显示在多个页面或者在一个页面逐个显示数据项,也可以对它们分组。 ListView控件会按照顶一顶模板和样式显示数据。与DataList和Repeater控件相似,此控件也适用于任何具有重复结构的数据。但与这些控件不同的是,ListView控件允许用户编辑、插入和删除数据,以及对数据进行排序和分页,并且所有这一切都无需编写代码。 可以说,ListView就是DataGrid和Repeater的结合体,它既有Repeater控件的开放式模板,又具有DataGrid控件的编辑特性。ListView控件并不直接支持分页,需要借助下一节讲述的DataPager控件完成分页功能。,ListView模板,LayoutTemplate :布局模板。定义ListView控件的布局,必须包含一个充当数据占位符的控件。例如,该布局模板可以包含ASP.NET Table、Panel或Label控件(它还可以包含runat属性设置为“server”的table、div或span元素)。这些控件将包含ItemTemplate模板所定义的每个项的输出,还可以在GroupTemplate模板定义的内容中对这些输出进行分组。 ItemTemplate :项模板。标识要为各个项显示的数据绑定内容。此模板包含的控件通常已绑定到数据列或其他单个数据元素上。 ItemSeparatorTemplate :标识要在各个项之间呈现的内容。 AlternatingItemTemplate :交替项模板。标识为便于区分连续项,而为交替项呈现的内容。 SelectedItemTemplate :为区分所选数据项与显示的其他项,而标识该所选项呈现的内容。,ListView模板,EmptyItemTemplate :标识在使用GroupTemplate模板为空项时呈现的内容。 EmptyDataTemplate:标识在数据源没有返回数据时要呈现的内容。 GroupTemplate :分组模板。标识组布局的内容。它包含一个占位符对象,例如表单元格 (td)、div或span。该对象将由其他模板(例如 ItemTemplate 和 EmptyItemTemplate 模板)中定义的内容替换。 GroupSeparatorTemplate:标识项组之间呈现的内容。 EditItemTemplate :标识要在编辑项时呈现的内容。对于正在编辑的数据项,将呈现EditItemTemplate模板的内容以替代ItemTemplate模板的内容。 InsertItemTemplate:标识要在插入项时呈现的内容。将在ListView控件显示的项的开始或末尾处呈现InsertItemTemplate模板,以替代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控件置于Li
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育行业教育行业教育培训市场研究报告:K2教育培训市场分析
- 装备制造业2025年智能制造与网络安全融合创新报告
- 巧放圆形课件
- 巧克力知识培训内容课件
- 奥迪售后经理培训课件
- 巡察业务知识课件
- 嵌入式培训基础知识课件
- 岷洮西战役课件
- 年产8800万支微量核酸纯化柱项目可行性研究报告
- 2025版核能设备安全运行维护与保障服务合同
- 全国中学教师《初中数学》说课教学比赛-主题:《等腰三角形的性质》说课-一等奖课件
- 2024年工会财务知识竞赛试题及答案
- 26个英语字母描红练习(素材)-小学英语
- DL∕T 686-2018 电力网电能损耗计算导则
- 糖尿病医疗广告宣传指南
- 2023年河南省中考数学试卷及答案
- 中外民歌欣赏(高中音乐课件)
- Revit-基础教程课件
- 大学美育(第二版) 课件 第五单元:书法艺术
- 消防工程技术咨询合同
- 从《史记》看司马迁的命运观
评论
0/150
提交评论