数据绑定是程序员只需做少量工作就可以用数据库中的数据填充Windows或Web控件的一种技术。
数据绑定有两点要求:数据源和要绑定数据的控件。数据源包括:数据库连接,对象,来自Web服务的数据。
1、 绑定到数据源(Windows应用程序)
可以将数据绑定到很多控件,但使用向导只能绑定到以下控件:
控件
|
说明
|
列表控件
|
包括ListBox和ComboBox,显示单行数据;
|
DataGridView
|
以类似表格的格式显示数据;
|
BindingNavigator
|
在表中的多条记录之间导航;
|
详细视图
|
由基本控件(如TextBox和Label)组成,显示单行数据。
|
2、 BindingSource控件
BindingSource控件充当数据绑定控件和数据源之前的中介。它提供了一个通用接口,其中包含控件绑定到数据源时所需的所有功能。数据源可以设计成任何形式,只要它能够与BindingSource控件进行通信。这意味着可以使用非数据库数据源,或使用极其复杂的数据访问机制的自定义数据源。
3、 ASP.NET的数据绑定
和Windows应用程序一样,ASP.Net中的数据绑定依赖于连接,数据源和数据绑定控件。与Windows应用程序不同的是,ASP.NET中没有BindingSource控件作为数据源与数据绑定控件之间的中介,且数据绑定通常不使用类型化数据集,如果需要使用的话要求使用编程式数据访问而不是声明式数据绑定。
ASP.NET的数据源控件:
数据源控件
|
说明
|
SqlDataSource
|
与SQL Server数据库交换数据;
|
AccessDataSource
|
连接到存储在Microsoft Acess数据库中的数据;
|
ObjectDataSource
|
暴露存储在对象中的数据,以便数据绑定;
|
XmlDataSource
|
绑定到存储在XML文件中的数据;
|
SiteDataSource
|
暴露Web应用程序的网站地图中的数据,从而能够动态地显示生成的导航控件、当前位置等。
|
ASP.NET数据显示控件:
控件
|
说明
|
GridView
|
以表格形式显示多行数据
|
DataList
|
显示多条记录,但与GridView不同。它按顺序显示每行中的所有信息。
|
Repeater
|
其实际上是DataList的简化版。它提供只读视图,程序员完全可以控件输出数据的HTML。Repeater不提供多种布局,而是允许使用一组基本模板来控制其外观,然后只输出指定的HTML,还可以实现分页、数据编辑等功能。
|
FormView
|
显示单行数据,支持分页。支持多种模板。在所有情况下,生成的FormView和DataList都很像。
|
DetailsView
|
与FormView类似,也显示一条记录,支持自动分页,数据编辑。这两个控件的主要区别在于,DetailsView将一行数据显示为两列,左边为列名,右边为列值。
|
模板:
模板是将绑定数据显示为HTML的方式,由HTML和ASP.NET代码组成,是独立的可重用单元。对于数据绑定,模板包含的最重要的内容是数据绑表达式。数据绑定表达式是一个占位符,可动态地用于在模板的特定位置插入绑定的数据,还在ASP.NET控件的属性与数据列之间提供了双向链接。
最常用的模板是ItemTemplate。它用于DataList、Repeater和FormView等控件,将数据表中的一行显示为HTML。
完整的模板列表如下:
模板
|
说明
|
ItemTemplate
|
控制列表控件中各个元素的输出,或只显示一个元素的控件的主元素显示区域;
|
AlternatingItemTemplate
|
替换ItemTemplate模板,用于选中的元素;
|
SelectedItemTemplate
|
替换ItemTemplate模板,用于选中的元素;
|
EditItemTemplate
|
替换ItemTemplate模板,用于编辑模式的元素;
|
InsertItemTemplate
|
添加新元素时使用该模板;
|
HeaderTemplate
|
包含要在列表元素前,或只显示一个元素的控件的主元素内容前生成的代码。数据绑定表达式不会绑定到这个模板中的元素;
|
FooterTemplate
|
包含要在列表元素后,或只显示一个元素的控件的主元素内容后生成的代码。数据绑定表达式不会绑定到这个模板中的元素;
|
SeparateTemplate
|
包含要在列表中每个元素前生成的HTML代码。数据绑定表达式不会绑定到这个模板中的元素;
|
EmptyDataTemplate
|
如果元素不包含数据,则生成这个模板的内容而不是ItemTemplate的内容。数据绑定表达式不会绑定到这个模板中的元素,因为这个元素是空的;
|
PaperTemplate
|
用于显示数据绑定控件的分页控件的HTML。其使用相当复杂。
|
下表列出数据绑定控件可使用的模板:
模板
|
GridView
|
DataList
|
Repeater
|
FormView
|
DetailsView
|
ItemTemplate
|
|
√
|
√
|
√
|
|
AlternatingItemTemplate
|
|
√
|
√
|
|
|
SelectedItemTemplate
|
|
√
|
|
|
|
EditItemTemplate
|
|
√
|
|
√
|
|
InsertItemTemplate
|
|
|
|
√
|
|
HeaderTemplate
|
|
√
|
√
|
√
|
√
|
FooterTemplate
|
|
√
|
√
|
√
|
√
|
SeparateTemplate
|
|
√
|
√
|
|
|
EmptyDataTemplate
|
√
|
|
| |
请发表评论