Transcript 数据绑定和数据控件
数据绑定 学习内容 数据绑定概述 SqlDataSource控件 数据服务器控件 数据绑定概述 数据绑定是ASP.NET提供的另外一种访问数据库 的方法。 与ADO.NET数据库访问技术不同的是:数据绑定 技术可以让程序员不关注数据库连接、数据库命 令以及如何格式化这些数据以显示在页面上等环 节,而是直接把数据绑定到HTML元素和Web控 件。 数据控件则是用来显示从数据库中获取的数据 数据绑定概述 数据绑定的原理是:首先要设置控件的数据源和 数据的显示格式,把这些设置完毕以后,控件就 会自动处理剩余的工作以把要显示的数据按照要 显示的格式显示在页面上。 ASP.NET数据绑定具有两种类型:既可以绑定到 简单的数据源,也可以绑定到复杂的数据源。 数据绑定概述 绑定到简单的数据源 简单的数据源包括代码中直接定义的变量、属性、表达式、 数据集和方法等,其实就是实现动态文本的一种的方式, 可以向ASP.NET页面文件中添加特殊的数据绑定表达式。 主要有四种数据绑定表达式: (1) <%=XXX %>,它是内联引用方式,可以引用C#代码。 (2) <%# XXX %>,它可以引用.cs文件中的代码的字段,但这个 字段必须初始化后,在页面的Load事件中使用Page.DataBind方法 来实现。 (3) <%#$ XXX %>,它可以引用Web.config文件中预定义的字 段或者已注册的类。 (4) <%# Eval(XXX) %>,它类似于JavaScript,数据源也需要 绑定。 数据绑定概述 绑定到复杂的数据源 复杂的数据源通常包括列表控件和支持数据绑定的控件, ASP.NET提供一系列的这类控件: 1. 列表控件:ListBox、DropDownList、CheckBoxList和 RadioButtonList等。 2. 复杂数据控件:GirdView、DetailsView、FormView和ListView 等。 它们的常规绑定步骤如下: 1.将用于显示数据的Web服务器控件添加到ASP.NET页面中。 2.将数据源对象赋给控件的DataSource属性。 3.执行控件的DataBind方法。 SqlDataSource控件 SqlDataSource控件 可以将 SqlDataSource控件和用于显示数据的其他控件(如 GridView、FormView和DetailsView控件)结合使用,使用很少的 代码或不使用代码就可以在ASP.NET网页中显示和操作数据。 SqlDataSource控件 SqlDataSource控件使用ADO.NET类与 ADO.NET支持的任何数据库进行交互。 SqlDataSource控件使用ADO.NET类提供的提 供器访问数据库, 在ASP.NET页面文件中,SqlDataSource控件定 义的标记同其他控件一样,示例如下: <asp:SqlDataSource ID="SqlDataSource1" runat="server" ... /> SqlDataSource控件 1. 2. 3. SqlDataSource控件具有如下几个功能: 执行数据库操作命令 ,SelectCommand、 UpdateCommand、DeleteCommand 和 InsertCommand四个属性对应数据库操作的四个命令: 选择、更新、删除和插入,只需要把对应的SQL语句赋 予这四个属性,SqlDataSource控件即可完成对数据库 的操作。 返回DataSet或DataReader对象,通过设置数据源控 件的DataSourceMode属性,可以指定要返回的格式。 进行缓存 ,默认情况下不启用缓存。将EnableCaching 属性设置为true,便可以启用缓存。 SqlDataSource控件 SqlDataSource控件的属性 1. 2. 3. 4. 5. 6. Select:方法所检索到的数据的时间。 ConnectionString:获取或设置特定于ADO.NET提供程序的连接字符 串,SqlDataSource控件使用该字符串连接基础数据库。 DeleteCommand:获取或设置SqlDataSource控件从基础数据库删 除数据所用的SQL 字符串。 InsertCommand:获取或设置SqlDataSource控件将数据插入基础数 据库所用的SQL字符串。 SelectCommand:获取或设置SqlDataSource控件从基础数据库检 索数据所用的SQL 字符串。 UpdateCommand:获取或设置SqlDataSource控件更新基础数据库 中的数据所用的SQL字符串。 SqlDataSource控件 1. 2. 3. 4. SqlDataSource控件可以使用参数执行下列操 作: 提供用于数据检索的搜索条件; 提供要在数据存储区中插入、更新或删除的值; 提供用于排序、分页和筛选的值。 借助参数,使用少量自定义代码或不使用自定义 代码就可筛选数据和创建主/从应用程序。 可以从各种源中获取参数值。通过Parameter 对象,可以从Web服务器控件属性、Cookie、 会话状态、QueryString字段、用户配置文件属 性及其他源中提供值给参数化数据操作。 SqlDataSource控件 SqlDataSource控件的参数类型 ControlParameter: 将参数设置为ASP.NET网页中的 Control的属性值。 CookieParameter: 将参数设置为HttpCookie对象的 值。 FormParameter: 将参数设置为HTML窗体字段的值。 ProfileParameter: 将参数设置为当前用户配置文件 (Profile) 中的属性的值。 QueryStringParameter:将参数设置为QueryString 字段的值。使用QueryStringField属性指定 QueryString字段的名称。。 SessionParameter: 将参数设置为Session对象的值。 使用SessionField属性指定Session对象的名称。 数据服务器控件 数据服务器控件就是能够显示数据的控件,与那些简单格 式的列表控件不同,这些控件不但提供显示数据的丰富界 面(可以显示多行多列数据,还可以根据用户定义来显示), 还提供了修改、删除和插入数据的接口。 数据服务器控件 1. 2. 3. 4. 5. 6. ASP.NET提供的数据服务器控件包括: GridView,是一个全方位的网格控件,能够显示一整张表的数据, 它是ASP.NET中最为重要的数据控件。 DetailsView,是用来一次显示一条记录。 FormView,也是用来一次显示一条记录,与DetailsView不同的是, FormView是基于模板的,可以使布局具有灵活性。 DataList,可用来自定义显示各行数据库信息,显示的格式在创建的 模板中定义。 Repeater,生成一系列单个项,可以使用模板定义页面上单个项的 布局,在页面运行时,该控件为数据源中的每个项重复相应的布局。 ListView,可以绑定从数据源返回的数据并显示它们,它会按照使用 模板和样式定义的格式显示数据。 数据服务器控件 GridView 控件 1. 2. 3. 4. 5. 使用GridView 控件,可以显示、编辑和删除来自不同数据源的数据, GridView 控件具有以下几个功能: 绑定和显示数据。 对绑定其中的数据进行选择、排序、分页、编辑和删除。 自定义列和样式。 自定义用户界面元素。 在事件处理程序中加入代码来完成与GridView控件的交互。 数据服务器控件 1. 2. 3. 4. 5. 6. 7. 8. 9. GridView控件的常用属性 AllowPaging:获取或设置指示是否启用分页的值。 AllowSorting:获取或设置指示是否启用排序的值。 AutoGenerateColumns:获取或设置一个值,该值指示是否为数据 源中的每一字段自动创建BoundColumn对象并在GridView控件中 显示这些对象。 Columns:获取表示GridView控件的各列的对象集合。 PageIndex:获取或设置当前显示页的索引。 DataSource:获取或设置源,该源包含用于填充控件中的项的值列 表。 PageCount:获取显示GridView控件中各项所需的总页数。 PageSize:获取或设置要在GridView控件的单页上显示的项数。 SelectedIndex:获取或设置GridView控件中选定项的索引。 数据服务器控件 GridView 控件的方法 DataBind:将数据源绑定到GridView控件。 DeleteRow:从数据源中删除位于指定索引位置 的记录。 IsBindableType:确定指定的数据类型是否能绑 定到GridView控件中的列。 Sort:根据指定的排序表达式和方向对GridView 控件进行排序。 UpdateRow:使用行的字段值更新位于指定行 索引位置的记录。 数据服务器控件 1. 2. 3. 4. 5. 6. 7. 8. 9. GridView 控件的事件 PageIndexChanged :在单击某一页导航按钮时,但在GridView 控件处理分页操作之后发生。 RowCommand: 当单击GridView控件中的按钮时发生。 RowDataBound: 在GridView控件中将数据行绑定到数据时发生。 RowDeleted :在单击某一行的“删除”按钮时,但在GridView控 件删除该行之后发生。 RowEditing: 发生在单击某一行的“编辑”按钮以后,GridView 控件进入编辑模式之前。 RowUpdated: 发生在单击某一行的“更新”按钮,并且GridView 控件对该行进行更新之后。 SelectedIndexChanged :发生在单击某一行的“选择”按钮, GridView控件对相应的选择操作进行处理之后。 SelectedIndexChanging: 发生在单击某一行的“选择”按钮以后, GridView控件对相应的选择操作进行处理之前。 Sorted: 在单击用于列排序的超链接时,但在 GridView控件对相 应的排序操作进行处理之后发生。 数据服务器控件 1. 2. 3. 4. 5. 6. 7. 在GridView控件中绑定数据有两种方式:一是使用多值 绑定,二是使用数据源控件。 GridView控件的每一列的显示都需要实现定义。 GridView控件提供了几种类型的列以方便操作: BoundField:显示数据源中某个字段的值,它是GridView控件的默 认列类型。 ButtonField:为GridView控件中的每个项显示一个命令按钮。 CheckBoxField:为GridView控件中的每一项显示一个复选框。 CommandField:显示用来执行选择、编辑和删除操作的预定义命 令按钮。 HyperLinkField:将数据源中某个字段的值显示为超链接。 ImagField:为GridView控件中的每一项显示一个图象。 TemplateField:根据指定的模版为GridView控件中每一项显示用 户定义的内容。 数据服务器控件 1. 2. GridView控件支持对显示在其中进行排序,只需 要把属性AllowSorting设置为true即可。 对GridView控件进行自定义排序行为,可以在 Sorting事件中编写自定义的排序代码。 在Sorting事件处理程序中可以进行的操作: 自定义传递给数据源控件的排序表达式。 创建自己的排序逻辑。 数据控件 1. 2. 3. 4. GridView控件提供了分页显示支持。 属性AllowPaging决定是否使用分页显示。 PagerSetting属性可以设置分页显示的模式, 可以通过设置PagerSettings类的Mode属性来 自定义分页模式。Mode属性的值包括: NextPrevious:上一页按钮和下一页按钮模式。 NextPreviousFirstLast:上一页按钮、下一页按钮、第 一页按钮和最后一页按钮模式。 Numeric:可以直接访问页面的带编号的链接按钮模式。 NumericFirstLast:带编号的链接按钮、第一页链接按 钮和最后一页链接按钮模式。 数据服务器控件 DetailsView控件 DetailsView控件主要用来从与它联系的数据源 中一次显示、编辑、插入或删除一条记录。通常, 它将与GridView控件一起使用在主/详细方案中, GridView控件用来显示主要的数据目录,而 DetailsView控件显示每条数据的详细信息。 数据服务器控件 ListView控件 ListView控件可以显示使用数据源控件或ADO.NET获得 的数据 。 使用模板和样式定义的格式显示数据。利用ListView控件, 可以逐项显示数据,也可以按组显示数据。 数据服务器控件 1. 2. 3. 4. 5. 6. 7. ListView 控件具有以下特点: 支持绑定到数据源控件,例如SqlDataSource和 ObjectDataSource。 可通过用户定义的模板和样式自定义外观。 内置排序和选择功能。 内置更新、插入和删除功能。 支持通过使用DataPager控件进行分页的功能。 支持以编程方式访问ListView对象模型,从而可 以动态设置属性、处理事件。 支持多个键字段。 数据服务器控件 为了使ListView控件显示内容,必须为控 件的不同部分创建模板。用户需要根据不 同的需求创建相应的模板。 通常需要向模板中添加一些按钮,以允许 用户指定要执行的操作。通过设置按钮的 CommandName 属性,可以定义按钮将 执行的操作。