理论教育 ASP.NET数据控件:数据源、GridView、配置

ASP.NET数据控件:数据源、GridView、配置

时间:2023-11-01 理论教育 版权反馈
【摘要】:ASP.NET数据访问系统的核心是数据源控件。ASP.NET4附带以下数据源控件:● AccessDataSource:可以通过指定文件名的方式来方便地操作Microsoft Access数据库。有关使用数据源控件访问数据库的方法将在下一章详细介绍。ASP.NET4工具箱的“数据”部分有6个数据Web控件,它们之间的差别在于显示底层数据的方法不同。2)添加GridView控件到网页中,并将其配置为上一步添加的数据源控件。表4-13 可用字段类型GridView控件可以绑定至数据源控件,例如SqlDataSource、ObjectDataSourc,等等。

ASP.NET数据控件:数据源、GridView、配置

数据展示是一个网站最常见的任务之一,在ASP.NET网页中显示数据需要使用两种类型的Web控件。首先需要使用数据源控件来访问数据,然后使用数据Web控件显示数据源控件检索的数据。

(1)数据源控件。在动态网页中,用户常常需要从数据库中检索数据,并在网页中显示。ASP.NET提供了7个名称都以DataSource结尾的数据源控件,位于Visual Web Developer工具箱的“数据”部分,这些控件用于访问底层数据库中的数据。在后台数据源控件使用结构化查询语言SQL向数据库发送命令。

ASP.NET数据访问系统的核心是数据源控件。一个数据源控件代表一个备份数据存储(数据库、对象、xml、消息队列等),页面并不显示数据源控件,但是它确实可以为任何数据绑定的UI控件提供数据访问。为了支持数据源控件并使用自动数据绑定,利用一个事件模型以便在更改数据时通知控件,各种UI控件都进行了重新设计。此外,数据源还提供了包括排序、分页、更新、删除和插入在内的功能,执行这些功能无需任何附加代码。

ASP.NET4附带以下数据源控件:

● AccessDataSource:可以通过指定文件名的方式来方便地操作Microsoft Access数据库。如果在应用程序中使用Microsoft Access数据库,则能够通过System.Web.UI.WebControls.AccessDataSource执行插入、更新和删除数据的操作。

● SqlDataSource:配置比AccessDataSource的更为复杂,用于企业级应用程序,这些应用程序需要一个真正的数据库管理系统(DBMS)所拥有的功能。例如可以访问SQL Server、OLE DB、Oracle等数据库系统

● ObjectDataSource:用于实现一个数据访问层,从而提供更好的封装和抽象。ObjectDataSource控件支持绑定到一个特定的数据层,而非绑定到一个数据库,其绑定方式与使用其他控件绑定数据库的方式相同。ObjectDataSource控件能够绑定到任何一个方法,该方法返回一个DataSet对象或IEnumerable对象。

● XmlDataSource:XML数据通常用于表示半结构化或层次化数据。使用XML文档作为数据源,可以从其他资源接收XML文档,并将XML数据格式化,以便与应用程序兼容。

要配置一个System.Web.UI.WebControls.XmlDataSource,必须指定XML文件的路径,如果XML需要传输数据,则还需指定XSLT样式表路径或XPath查询路径(可选)。

● SiteMapDataSource:控件和ASP.NET站点地图协作,提供站点的导航数据。最经常使用该数据源的时Menu控件。对于想使用站点地图数据和使用非导航控件(如TreeView、DropDowList)的用户来说,SiteMapDataSource也是非常有用的。

● EntityDataSource:控件在使用ADO.NET Entity Framework的Web应用程序中支持数据绑定方案。EntityDataSource控件的编程图面与SqlDataSource、LinqDataSource、XmlDataSource和ObjectDataSource控件的编程图面类似。与其他Web服务器数据源控件一样,EntityDataSource控件也代表同一页上的数据绑定控件管理对数据源的创建、读取、更新和删除操作,可用于可编辑的网格、具有用户控制的排序和筛选功能的窗体、双重绑定的下拉列表控件以及主-详细信息页。

● LinqDataSource:控件通过ASP.NET数据源控件结构向Web开发人员公开语言集成查询(LINQ)。LINQ提供一种用于在不同类型的数据源中查询和更新数据的统一编程模型,并将数据功能直接扩展到C#和Visual Basic语言中。LINQ通过将面向对象编程的准则应用于关系数据,简化了面向对象编程与关系数据之间的交互。

有关使用数据源控件访问数据库的方法将在下一章详细介绍。

数据Web控件的唯一用途是显示数据。ASP.NET4工具箱的“数据”部分有6个数据Web控件,它们之间的差别在于显示底层数据的方法不同。

(2)GridView控件。用于显示特定查询返回的全部记录。每一列代表一个字段,每一行代表一个记录。GridView控件支持以下功能:

● 绑定到数据源控件,例如SqlDataSource。

● 内置排序功能。

● 内置更新和删除功能。

● 内置页面功能。

● 内置行选择功能。

● 可以编程访问GridView对象模型,动态设置属性,处理事件等等。

● 支持多个关键字段。

● 支持用多个数据字段创建超级链接列。

● 可以通过主题和风格调整外观。

在ASP.NET网页中添加GridView控件,并将其与数据源控件相关联需要两个步骤:

1)添加数据源控件到网页中,并将其配置为检索要显示的数据。

2)添加GridView控件到网页中,并将其配置为上一步添加的数据源控件。

除显示数据源控件检索的每条记录外,GridView控件还默认显示标题行,列出所显示字段的名称。GridView控件的每一列由一个DataControlField对象来表示。默认情况下,属性AutoGenerateColumns值为true,为每一个数据源中的对象生成一个AutoGenerateField字段。也可以将AutoGenerateColumns值设为false以自定义列字段的类型。表4-13显示可用的字段类型。

表4-13 可用字段类型

978-7-111-43915-8-Chapter04-126.jpg

GridView控件可以绑定至数据源控件,例如SqlDataSource、ObjectDataSourc,等等。也可以绑定至任何实现了System.Collections.IEnumerable接口的数据源,例如System.Data.DataView、System.Collections.ArrayList、System.Collections.Hashtable等。有三种方法实现绑定:

● 将GridView控件的DataSourceID属性的值设置为数据源的ID。

● 将GridView控件绑定至实现了System.Collections.IEnumerable接口的数据源。设置GridView的DataSource属性为该数据源并调用DataBind方法。

● GridView控件绑定至指定的数据源控件后,可以实现分类、更新、删除等操作。

下面的代码演示如何使用GridView控件来展示数据。

978-7-111-43915-8-Chapter04-127.jpg

978-7-111-43915-8-Chapter04-128.jpg

下面的代码演示如何使用GridView控件的更新、删除功能。

978-7-111-43915-8-Chapter04-129.jpg

注意:

GridView还有更多新鲜功能,由于篇幅所限在此不能一一演示,有兴趣的读者可以参看相关书籍或者参阅MSDN。

(3)DetailsView控件。如果用户希望每次只显示一条检索记录,可以使用DetailsView控件。DetailsView控件用来显示表中数据源单条记录的值,表的每一行中显示记录的每个字段。DetailsView控件支持以下功能:

● 绑定到数据源控件,例如SqlDataSource。(www.daowen.com)

● 内置插入功能。

● 内置更新和删除功能。

● 内置页面功能。

● 内置行选择功能。

● 可以编程访问DetailsView对象模型,动态设置属性,处理事件等等。

● 可以通过主题和风格调整外观。

DetailsView控件的每一个数据行都是通过声明字段控件来创建的。不同的字段类型确定了控件中行的行为。表4-14显示可用的行字段类型。

表4-14 行字段类型

978-7-111-43915-8-Chapter04-130.jpg

DetailsView控件可以绑定至数据源控件,也可以绑定至任何实现了System.Collections.IEnumerable接口的数据源,例如System.Data.DataView、System.Collections.ArrayList、System.Collections.Hashtable,等等。

DetailsView控件绑定至数据源控件的方法与GridView相同,绑定数据源后,可以实现更新,插入、删除等操作。下面的代码演示如何用GridView控件来显示DetailsView控件中选中数据的详细信息。

978-7-111-43915-8-Chapter04-131.jpg

978-7-111-43915-8-Chapter04-132.jpg

下面的代码演示如何使用DetailsView控件实现对数据源的添加、删除和更新。

978-7-111-43915-8-Chapter04-133.jpg

978-7-111-43915-8-Chapter04-134.jpg

978-7-111-43915-8-Chapter04-135.jpg

978-7-111-43915-8-Chapter04-136.jpg

978-7-111-43915-8-Chapter04-137.jpg

在这里,读者可能会发现DetailsView控件在默认情况下没有提供查看下一条记录的机制,如果要浏览其他记录,可以在DetailsView的智能标签中选中“启用分页”复选框,这将在DetailsView底部添加一个分页行。默认情况下,分布界面使用页码跳转到特定记录。

(4)FormView控件。用来显示数据源的单条记录。与DetailsView控件相似,只是显示的是用户自定义的模板,而不是行字段。创建模板可以使控制数据显示更加灵活。FormView控件支持以下特征:

● 绑定至数据源控件,例如SqlDataSource和ObjectDataSource。

● 内置插入功能。

● 内置更新和删除功能。

● 内置分页功能。

● 可以编程访问FormView对象模型,动态设置属性,处理事件等等。

● 可以通过用户自定义的模板、主题和风格调整外观。

FormView显示内容时,必须为其创建模板。表4-15列出了不同的模板类型。

表4-15 模板类型

978-7-111-43915-8-Chapter04-138.jpg

978-7-111-43915-8-Chapter04-139.jpg

与GridView控件类似,FormView控件绑定至指定的数据源控件后,可以实现插入、更新、删除等操作。下面的代码演示使用FormView控件显示SqlDataSource的数据。

978-7-111-43915-8-Chapter04-140.jpg

978-7-111-43915-8-Chapter04-141.jpg

下面的代码演示使用FormView编辑记录。

978-7-111-43915-8-Chapter04-142.jpg

978-7-111-43915-8-Chapter04-143.jpg

978-7-111-43915-8-Chapter04-144.jpg

978-7-111-43915-8-Chapter04-145.jpg

978-7-111-43915-8-Chapter04-146.jpg

ASP.NET 4提供的用于数据操作的控件比ASP.NET 3.5的数据控件方便许多,大大减少了需要开发的代码量。由于篇幅所限,本节只是对这些数据控件进行简单介绍,数据源展示控件的功能远比介绍的更强大、更灵活,相信读者在以后的开发实践过程中一定能够获取更多的乐趣!

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈