深入研究Repeater控件:最大的灵活性

开发 后端
本文介绍ASP.NET数据Web控件中的Repeater控件。Repeater控件在三个ASP.NET数据Web控件中提供了最大的灵活性:它呈现的HTML标记是可以指定的。

Repeater控件在三个ASP.NET数据Web控件中提供了***的灵活性:它呈现的HTML标记是可以指定的。DataGrid 或 DataList 会在预设的 HTML 标记中自动包含开发人员指定的内容。与它们不同的是,Repeater 在呈现的时候将严格生成指定的 HTML 标记。 因此,如果不想用 HTML

< table>

或者一系列

< span>

标记显示数据,而希望以其他方式显示数据,就必须使用 Repeater 控件。

就像 DataList 一样,使用Repeater控件时要用模板指定标记。 Repeater 包含下列五个模板:

AlternatingItemTemplate

FooterTemplate

HeaderTemplate

ItemTemplate

SeparatorTemplate

HeaderTemplate 和 FooterTemplate 指定出现在绑定到 Repeater 的数据之前和之后的 HTML 标记。AlternatingItemTemplate 和 ItemTemplate 指定用于呈现 Repeater 的

DataSource

中的每条记录的 HTML 标记和数据绑定语法。 例如,假设您要把包含雇员信息的数据集绑定到 Repeater,该数据集的其中一个字段是

EmployeeName

。 如果要在 Web 页上以无序列表的形式显示雇员列表,则可以使用如下 Repeater 语法:

  1. < asp:Repeater runat="server" id="rptEmployees"> 
  2.   < HeaderTemplate> 
  3.     < ul> 
  4.   < /HeaderTemplate> 
  5.   < ItemTemplate> 
  6.     < li>< %# DataBinder.Eval(Container.DataItem, "EmployeeName") %>< /li> 
  7.   < /ItemTemplate> 
  8.   < FooterTemplate> 
  9.     < /ul> 
  10.   < /FooterTemplate> 
  11. < /asp:Repeater> 

与 DataGrid 和 DataList 不同,Repeater 类不是从

WebControl

类派生的。 因此,Repeater 缺少 DataGrid 和 DataList 二者共有的样式属性。 这一点归结起来无非是说,如果想对 Repeater 中所显示数据进行格式设置,则必须在 HTML 标记中进行这样的操作。 例如,在上面的例子中,如果想用粗体显示雇员的姓名,则必须更改 ItemTemplate 以包含 HTML 粗体标记,就像下面这样:

  1. < ItemTemplate> 
  2.   < li>< b>< %# DataBinder.Eval(Container.DataItem, "EmployeeName")  
  3.     %>< /b>< /li> 
  4. < /ItemTemplate> 

然而对于 DataGrid 或 DataList,通过把控件的

ItemStyle-Font-Bold

属性设置为 True,就能用粗体显示文本了。

Repeater控件 缺少样式属性会大大增加开发的时间指标。 例如,假设决定使用 Repeater 显示数据,这些数据需要以粗体、中间对齐且带有特定背景色的特定字体显示。 所有这些都要用几个 HTML 标记指定,这些标记很快就会使 Repeater 的模板变得凌乱不堪。 这种凌乱会使以后对外观进行更改变得困难得多,尤其是当其他人对该项目进行操作时,则不得不查看大量 HTML 语法。 将这一点与为 DataGrid 或 DataList 指定格式进行比较。 对于这两个控件中的任何一个,都可以通过指定 DataGrid 或 DataList 的样式属性来使模板免于凌乱。 此外,可以用一些工具来自动设置 DataGrid 和 DataList 的样式属性,例如 Microsoft Visual Studio .NET 或 ASP.NET Web Matrix。

除了延长开发时间之外,Repeater 还缺少有助于支持分页、编辑或数据编辑的内置功能。 由于缺少这些功能支持,Repeater 在可用性的评定中得分很低。 当然,如果 所有您感兴趣的只是显示数据,而不用带任何别致的铃声或口哨声,那么 Repeater 的功能匮乏就不是主要缺点了。 我之所以强调“如果”一词是因为,通常,Web 应用程序一旦进行了部署,用户就会发现他们需要附加的功能,例如排序、分页和编辑。

Repeater 有一个弥补性的品质(这并不令人吃惊),那就是性能。 Repeater 的性能比 DataList 的性能稍微好一点,比 DataGrid 的性能要好很多。图 3 显示了Repeater 每秒能处理的请求数,并与 DataGrid 和 DataList 进行了对比。

Repeater 的每秒请求数 

图 3: Repeater 的每秒请求数

【编辑推荐】

  1. DataList控件入门介绍
  2. DataGrid Web控件运作机制探秘
  3. 小议ASP.NET数据Web控件之间的相似性
  4. 从传统ASP到ASP.NET的转变:了解控件
  5. ASP.NET调试API之Log4net使用指南
责任编辑:yangsai 来源: MSDN
相关推荐

2010-02-01 18:23:54

Python

2013-02-26 10:44:26

2022-10-10 18:39:01

legendapp前端框架

2010-02-23 17:04:32

Python编程语言

2009-01-01 22:08:15

企业网络提高

2016-11-08 13:50:57

2012-03-07 15:22:02

2009-01-22 19:03:32

服务器虚拟化VMware

2024-05-15 08:54:04

C++类型限定符代码

2015-12-31 09:44:56

公有云谷歌云评测

2010-07-20 09:18:48

云计算灵活性

2024-08-02 10:21:32

C#Exception类自定义异常

2014-04-30 15:52:59

红帽

2010-07-22 10:08:39

JavaFXJava

2009-12-09 10:31:14

SOA质量SOA灵活性

2012-02-24 09:03:11

云计算虚拟化

2012-09-25 13:45:36

Marvell

2014-05-08 13:31:43

移动安全协作系统

2010-01-06 12:16:46

Ubuntu软件包

2009-06-08 09:57:45

编程语言编程语言性能高级编程语言
点赞
收藏

51CTO技术栈公众号