繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> 用Repeater控件显示数据

用Repeater控件显示数据

2007-09-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:如果你正在使用ASP.NET,你一定对DataGrid控件非常熟悉。DataGrid控件提供了各种特性,通过这些特性可以很容易地在一个Web页面上以列表形式显示数据。但是,如果你不想使用HTML表格形式呢?此时,可以使用一个Da...
关键字:控件 Repeater 数据

如果你正在使用ASP.NET,你一定对DataGrid控件非常熟悉。DataGrid控件提供了各种特性,通过这些特性可以很容易地在一个Web页面上以列表形式显示数据。但是,如果你不想使用HTML表格形式呢?此时,可以使用一个DataGrid的一个鲜为人知的兄弟控件,即Repeater控件。Repeater控件提供显示你所需要数据的灵活性。Repeater控件是什么?

Repeater是一个可重复操作的控件,也就是说,它通过使用模板显示一个数据源的内容,而你可以很容易地配置这些模板。Repeater包含如标题和页脚这样的数据,它可以遍历所有的数据选项并应用到模板中。与DataGrid和DataList控件不同,Repeater控件并不是由WebControl类派生而来。所以,它不包括一些通用的格式属性,比如控制字体,颜色,等等。然而,使用Repeater控件,HTML(或者一个样式表)或者ASP.NET类可以处理这些属性。HTML在哪里?

Repeater控件与DataGrid(以及DataList)控件的主要区别是在于如何处理HTML。ASP.NET建立HTML代码以显示DataGrid控件,但Repeater允许开发人员决定如何显示数据。所以,你可以选择将数据显示在一个HTML表格中或者一个顺序列表中。这主要取决于你的选择,但你必须将正确的HTML插入到ASP.NET页面中。模板与DataList一样,Repeater控件只支持模板。以下的模板可供选择:AlternatingItemTemplate:指定如何显示每一其它选项。

ItemTemplate:指定如何显示选项。(AlternatingItemTemplate可以覆盖这一模板。)

HeaderTemplate:建立如何显示标题。

FooterTemplate:建立如何显示页脚。

SeparatorTemplate:指定如何显示不同选项之间的分隔符。

你可以使用这些模板来显示你希望的数据。唯一具有强制性的模板是ItemTemplate,所有其它的模板都是具有选择性的。数据

对于处理一个数据源,Repeater控件具有与DataGrid与DataList相同的属性:DataMember:获得或者设置与Repeater控件绑定的相应DataSource属性的表格。DataSource:获得或者设置为Repeater显示提供数据的数据源。除此之外,还有一个Items属性,你可以通过这一属性编程访问Repeater数据中单一选项。它返回一个RepeaterItemCollection对象,为一组RepeaterItem对象的集合,代表Repeater数据的每一行。ASP.NETWeb数据控件还有其它一个共性:它们都使用DataBind方法来生成用户界面。调用这一方法可以返回并显示数据(假设DataSource和DataMember属性设置正确)。在查看DataBind方法之前,我们先看看如何在一个Web页面中使用一个Repeater控件。使用Repeater控件

使用Repeater控件的第一步骤是决定我们将要使用的数据源和字段。例如,我们将要使用SQLServerNorthwind数据库中的Employees列表。Web页面将显示职工的完整名字,地址,以及电话号码。HTML将使用DIV标记,用Repeater模板来分隔内容。下面是Web页面的HTML内容:<%@Pagelanguage="c#"%>

<%@ImportNamespace="System.Data"%>

<%@ImportNamespace="System.Data.SqlClient"%>

Builder.comRepeaterExample

privatevoidPage_Load(objectsender,System.EventArgse){

if(!IsPostBack){

DataSetdset=newDataSet();

stringconn="server=(local);InitialCatalog=Northwind;UID=ctester;PWD=password";

stringqry="SELECTfirstname,lastname,address,city,region,postalcode,

homephoneFROMemployees";

SqlDataAdaptersda=newSqlDataAdapter(qry,conn);

sda.Fill(dset);

Repeater1.DataSource=dset.Tables[0].DefaultView;

Repeater1.DataBind();

}}

NorthwindEmployees


<%#((DataRowView)Container.DataItem)["FirstName"]%>

<%#((DataRowView)Container.DataItem)["LastName"]%>

<%#((DataRowView)Container.DataItem)["Address"]%>

<%#((DataRowView)Container.DataItem)["City"]%>,

<%#((DataRowView)Container.DataItem)["Region"]%>

<%#((DataRowView)Container.DataItem)["PostalCode"]%>

<%#((DataRowView)Container.DataItem)["HomePhone"]%>

<%#((DataRowView)Container.DataItem)["FirstName"]%>

<%#((DataRowView)Container.DataItem)["LastName"]%>

<%#((DataRowView)Container.DataItem)["Address"]%>

<%#((DataRowView)Container.DataItem)["City"]%>,

<%#((DataRowView)Container.DataItem)["Region"]%>

<%#((DataRowView)Container.DataItem)["PostalCode"]%>

<%#((DataRowView)Container.DataItem)["HomePhone"]%>

<%#((DataView)Repeater1.DataSource).Count+"employeesfound."%>

可以注意到,每个Repeater行中样式表控制着文字的外观。除此之外,在网页内容中还添加了一个文本框。嵌入式C#代码从Repeater的数据源中获取相应的列。每个数据项都被转换成一个DataRowView对象以便显示。这一页面并不是使用ASP.NET的“后台代码”性质。由于这一原因,页面引用了两个System.Data和System.Data.SqlClient空间名称。这对于使用DataRowView对象和与SQLServer交互访问是必需的。当调用页面时就会触发Page_Load事件。此时会把数据源连接到Repeater控件上,并查询数据库。每一Repeater行的代码从潜在数据源中载入数据,并且Web页面显示这些数据。这一设计使用了样式表(以及HTMLdiv标记),所以更改外观只需要更改必要的样式表代码。为了进一步地将数据和显示分离,你可以在一个独立文件中存储样式表,并以一个HTMLLINK标记来引用它们。一个很好的选择

当与其他ASP.NET开发者交流时,开发人员对Repeater控件知之甚少,这真让我感到惊讶。虽然它不如DataGrid功能强大,但它在许多场合中仍然提供了出色的灵活性。Repeater控件缺少编辑和排序功能,但可以通过进一步编程而实现。

责任编辑:admin
本文引用地址: http://www.3pcode.com/net/2007/09/90394.htm
发表评论 加入收藏 告诉好友 打印本页 关闭窗口 返回顶部
相关文章

最新文章

更多

推荐文章

更多

热点文章

更多