ASP.NET框架中数据绑定概要与数据绑定表达式使用_第1页
ASP.NET框架中数据绑定概要与数据绑定表达式使用_第2页
ASP.NET框架中数据绑定概要与数据绑定表达式使用_第3页
ASP.NET框架中数据绑定概要与数据绑定表达式使用_第4页
ASP.NET框架中数据绑定概要与数据绑定表达式使用_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、精品文档 ASP.NET框架中数据绑定概要与数据绑定表达式使用数据绑定是ASP.NET中操作数据的基础方式,这里我们暂时抛开.NET提供的控件,来从基础上讲解ASP.NET框架中的数据绑定概要与数据绑定表达式的使用: <%# % 语法 ASP.NET 介绍了一种新的声明性语法 <%# %。该语法是在 .aspx 页中使用数据绑定的基础。所有数据绑定表达式都必须包含在这些字符中。下面的列表包含从多个源进行简单数据绑定的示例: 简单属性(用于客户的语法): <%# custID % 集合(用于订单的语法): <asp:ListBox id=“List1” datasourc

2、e=<%# myArray % runat=“server”  表达式(用于联系人的语法): <%# ( customer.First Name + “ “ + customer.LastName ) % 方法结果(用于未结清余额的语法): <%# GetBalance(custID) % 在前面的示例中,<%# % 内联标记用于指示将把特定数据源中的信息放在 .aspx 页中的什么位置。以下数据绑定示例使用 TextBox Web 服务器控件: <asp:textbox id=txt text=“<%# custID %” runat=serve

3、r / Page.DataBind() versus Control.DataBind() 确定特定数据源并设置 .aspx 页上的对象之后,您必须将数据绑定到数据源。您可以使用 Page.DataBind 或 Control.DataBind 方法将数据绑定到数据源。 这两种方法的使用方式很相似。主要差别在于:调用 Page.DataBind 方法后,所有数据源都将绑定到它们的服务器控件。在显式调用 Web 服务器控件的 DataBind 方法或在调用页面级的 Page.DataBind 方法之前,不会有任何数据呈现给控件。通常,可以从 Page_Load 事件调用 Page.DataBin

4、d(或 DataBind)。 数据绑定表达式深入 数据绑定表达式包含在 <%# 和 % 分隔符之内,并使用 Eval 和 Bind 函数。Eval 函数用于定义单向(只读)绑定。Bind 函数用于定义双向(可更新)绑定。除了通过在数据绑定表达式中调用 Eval 和 Bind 方法执行数据绑定外,还可以调用 <%# 和 % 分隔符之内的任何公共范围代码,以在页面处理过程中执行该代码并返回一个值。 调用控件或 Page 类的 DataBind 方法时,会对数据绑定表达式进行解析。对于有些控件,如 GridView、DetailsView 和 FormView 控件,会在控件的 PreR

5、ender 事件期间自动解析数据绑定表达式,不需要显式调用 DataBind 方法。 下面的代码示例演示如何将数据绑定表达式与 ItemTemplate 中的 FormView 控件结合使用。 <asp:FormView ID=“FormView1”  DataSourceID=“SqlDataSource1”  DataKeyNames=“ProductID”     RunAt=“server”  <ItemTemplate   <table    <tr<td alig

6、n=“right”<bProduct ID:</b</td    <td<%# Eval(“ProductID”) %</td</tr    <tr<td align=“right”<bProduct Name:</b</td   <td<%# Eval(“ProductName”) %</td</tr    <tr<td align=“right”<bCategory ID:</b</td &nbs

7、p; <td<%# Eval(“CategoryID”) %</td</tr    <tr<td align=“right”<bQuantity Per Unit:</b</td<td<%# Eval(“QuantityPerUnit”) %</td</tr    <tr<td align=“right”<bUnit Price:</b</td    <td<%# Eval(“UnitPrice”) %</td

8、</tr   </table           </ItemTemplate          </asp:FormView 使用 Eval 方法 Eval 方法可计算数据绑定控件(如 GridView、DetailsView 和 FormView 控件)的模板中的后期绑定数据表达式。在运行时,Eval 方法调用 DataBinder 对象的 Eval 方法,同时引用命名容器的当前数据项。命名容器通常是包含完整记录的数据绑定控件的最小组成部分,如 G

9、ridView 控件中的一行。因此,只能对数据绑定控件的模板内的绑定使用 Eval 方法。 Eval 方法以数据字段的名称作为参数,从数据源的当前记录返回一个包含该字段值的字符串。可以提供第二个参数来指定返回字符串的格式,该参数为可选参数。字符串格式参数使用为 String 类的 Format 方法定义的语法。 使用 Bind 方法 Bind 方法与 Eval 方法有一些相似之处,但也存在很大的差异。虽然可以像使用 Eval 方法一样使用 Bind 方法来检索数据绑定字段的值,但当数据可以被修改时,还是要使用 Bind 方法。 在 ASP.NET 中,数据绑定控件(如 GridView、Det

10、ailsView 和 FormView 控件)可自动使用数据源控件的更新、删除和插入操作。例如,如果已为数据源控件定义了 SQL Select、Insert、Delete 和 Update 语句,则通过使用 GridView、DetailsView 或 FormView 控件模板中的 Bind 方法,就可以使控件从模板中的子控件中提取值,并将这些值传递给数据源控件。然后数据源控件将执行适当的数据库命令。出于这个原因,在数据绑定控件的 EditItemTemplate 或 InsertItemTemplate 中要使用 Bind 函数。 Bind 方法通常与输入控件一起使用,例如由编辑模式中的

11、GridView 行所呈现的 TextBox 控件。当数据绑定控件将这些输入控件作为自身呈现的一部分创建时,该方法便可提取输入值。 Bind 方法采用数据字段的名称作为参数,从而与绑定属性关联,如下面的示例所示: <EditItemTemplate  <table   <tr    <td align=right     <bEmployee ID:</b    </td    <td     <%# Eval(“Empl

12、oyeeID”) %    </td   </tr   <tr    <td align=right     <bFirst Name:</b    </td    <td     <asp:TextBox ID=“EditFirstNameTextBox” RunAt=“Server”      Text=<%# Bind(“FirstName”) % / &nbs

13、p;  </td   </tr   <tr    <td align=right     <bLast Name:</b    </td    <td     <asp:TextBox ID=“EditLastNameTextBox” RunAt=“Server”       Text=<%# Bind(“LastName”) % /    </td

14、  </tr   <tr    <td colspan=“2”     <asp:LinkButton ID=“UpdateButton” RunAt=“server”      Text=“Update” CommandName=“Update” /     <asp:LinkButton ID=“CancelUpdateButton” RunAt=“server”      Text=“Cancel” CommandNam

15、e=“Cancel” /    </td   </tr  </table </EditItemTemplate 单击行的 Update 按钮时,使用 Bind 语法绑定的每个控件属性值都会被提取出来,并传递给数据源控件以执行更新操作。 显式调用 DataBind 方法 有些控件,如 GridView、FormView 和 DetailsView 控件,当它们通过 DataSourceID 属性绑定到数据源控件时,会通过隐式调用 DataBind 方法来执行绑定。但是,有些情况需要通过显式调用 DataBind 方法来执行绑定。 其

16、中一种情况就是使用 DataSource 属性(而非 DataSourceID 属性)将某个控件绑定到数据源控件时。在这种情况下,需要显式调用 DataBind 方法,从而执行数据绑定和解析数据绑定表达式。 另一种情况就是需要手动刷新数据绑定控件中的数据时。假设有这样一个页面,其中有两个控件,这两个控件都显示来自同一数据库的信息(可能使用不同的视图)。在这种情况下,可能需要显式地将控件重新绑定到数据,以保持数据显示的同步。例如,可能有一个显示产品列表的 GridView 控件,和一个允许用户编辑单个产品的 DetailsView 控件。虽然 GridView 和 DetailsView 控件所

17、显示的数据都来自同一数据源,但被绑定到不同的数据源控件,因为这两个控件使用不同的查询来获取其数据。用户可能会使用 DetailsView 控件更新记录,从而引发由关联的数据源控件执行更新。但是,由于 GridView 控件被绑定到不同的数据源控件,所以,该控件仍将显示旧的记录值,直至页面被刷新时才会更新。因此,在 DetailsView 控件更新数据后,可以调用 DataBind 方法。这会使 GridView 控件更新其视图,并重新执行任何数据绑定表达式以及 <%# 和 % 分隔符之内的公共范围代码。这样一来,GridView 控件将会反映 DetailsView 控件所做的更新。 使

18、用对查找表的绑定 一种有关数据绑定控件的常见方案是允许用户使用 DropDownList 控件或其他列表控件从查找表中选择一个值,以更新或插入该值。在这种情况下,将该查找控件绑定到返回可能值列表的单独数据源,而将该查找控件的选定值绑定到父数据绑定行中的字段。 可以按照如下方法添加此功能。首先,对于查找控件,向数据绑定控件(例如 GridView、DetailsView 或 FormView 控件)中的模板添加一个列表控件(DropDownList 或 ListBox 控件)。接着将查找控件的 SelectedValue 属性绑定到容器控件的数据源中的相关字段。其次,将查找控件的 DataSourceID 属性设置为可检索查找值的数据源控件。接着将查找控件的 DataTextField 属性设置为查找表中包含要显示的值的字段,并将其 DataVa

温馨提示

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

评论

0/150

提交评论