分享

ASP.NET 数据绑定概述

 Knowledge Source 2011-04-26

本文讨论了下列数据绑定主题:

数据绑定概要

<%# %> 语法

ASP.NET 引入了一种新的声明语法 <%# %>。该语法是在 .aspx 页中使用数据绑定的基础。所有数据绑定表达式都必须包含在这些字符中。下面的列表包含从多个源进行简单数据绑定的示例:

  • 简单属性(用于客户的语法):

·                <%# custID %>

                         

  • 集合(用于订单的语法):

·                <asp:ListBox id="List1" datasource='<%# myArray %>' runat="server">

                         

  • 表达式(用于联系人的语法):

·                <%# ( customer.First Name + " " + customer.LastName ) %>

                         

  • 方法结果(用于未结清余额的语法):

·                <%# GetBalance(custID) %>

                         

在前面的示例中,<%# %> 内联标记用于指示将把特定数据源中的信息放在 .aspx 页中的什么位置。以下数据绑定示例使用 TextBox Web 服务器控件:

<asp:textbox id=txt text="<%# custID %>" runat=server />

                       

有关数据绑定语法的详细信息,请参阅以下 .NET Framework 软件开发工具包 (SDK) 文档:

数据绑定表达式语法
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpcondatabindingexpressionsyntax.asp

Page.DataBind() Control.DataBind()

.aspx 页上的对象确定并设置了特定数据源后,必须将数据绑定到这些数据源。您可以使用Page.DataBind  Control.DataBind 方法将数据绑定到数据源。

这两种方法的使用方式很相似。主要差别在于:调用 Page.DataBind 方法后,所有数据源都将绑定到它们的服务器控件。在显式调用 Web 服务器控件的 DataBind 方法或在调用页面级的Page.DataBind 方法之前,不会有任何数据呈现给控件。通常,可以从 Page_Load 事件调用Page.DataBind(或 DataBind)。

有关 DataBind 方法的详细信息,请参阅以下 .NET Framework SDK 文档:Control.DataBind 方法
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWebUIControlClassDataBindTopic.asp

 

列表控件模板中的绑定

您可以使用列表控件中的模板来绑定和自定义数据源的各个记录。本节提供了三种可用于执行此操作的方法。

DataBinder.Eval 方法

当数据源处理从数据库返回的数据时,它可能包含很多份信息。您可以使用通用的 DataBinder.Eval方法返回数据。在以下代码示例中,“au_id”字段是从容器对象的数据源中返回的:

<%# DataBinder.Eval(Container.DataItem,"au_id") %>

                       

有关 DataBinder.Eval 方法的详细信息,请参阅以下 .NET Framework SDK 文档:

DataBinder.Eval 方法
http://msdn.microsoft.com/library/default.asp?url=/library/en-us /cpref/html/frlrfSystemWebUIDataBinderClassEvalTopic.asp

显式转换

如果您需要更多控件,可使用显式转换。显式转换使用类型转换关键字。这些关键字充当函数,而由编译器生成内联代码。因此,执行速度要比通过调用函数稍快。下列代码示例使用显式转换: 
Visual C# .NET

// DataTable as the DataSource

<%# ((System.Data.DataRowView)Container.DataItem)["au_id"] %>

 

// DataReader as the DataSource

<%# ((System.Data.Common.DbDataRecord)Container.DataItem)["au_id"] %>

 

// DataReader as the DataSource

<%# ((System.Data.Common.DbDataRecord)Container.DataItem)[0] %>

ItemDataBound 事件

您还可以使用控件的 ItemDataBound 事件来绑定数据。当将某个项目的数据绑定到控件时,就会发生该事件。              

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多