快速业务通道

ASP.NET 2.0数据教程之三十:格式化DataList和Repeater的数据

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21

返回“ASP.NET 2.0数据教程目录”

导言

在前面的教程里我们学习了DataList提供了一些风格样式的属性. 而且我们还学习了如何定义HeadStyle, ItemStyle, AlternatingItemStyle, 和 SelectedItemStyle等属性的默认CSS.除了这四个属性外,DataList还提供了其它 属性,比如Font, ForeColor, BackColor, 和BorderWidth.而Repeater没有提供任 何这样的属性.如果你需要用Reperter来实现这些效果,你就需要在templates里直接写标记语言.

通常,数据需要怎样的格式取决于数 据本身.比如,我们可能使用灰色的字体列出那些被停止使用的product,或者在 UnitsInStock等于0的时候显示高亮.前面的教程里我们已经学习了GridView, DetailsView, 和FormView 都提供了两种截然不同的格式化数据的方 法.

DataBound 事件— 为DataBound 事件创建一个合适的event handler, 它在数据绑定到item的时候激发(对GridView来说是RowDataBound 事件 ;对 DataList 和Repeater来说是 ItemDataBound 事件). 在这些事件里, 刚刚绑 定的数据可以被格式化. 参见基于数据的自定义格式化这章.

Templates 的格式化功能— 在DetailsView 或GridView 里使用TemplateFields , 或 在FormView 里使用template , 我们可以在ASP.NET page的code-behind class里 或者BLL里,或者任何其它web程序里可以调用的类库里加格式化信息. 这种格式化 功能可以接收任意的输入参数, 但是在template里比如返回HTML . 格式化功能最 早在在GridView控件中使用TemplateField 这章里谈到过.

这两种方法都 可以在DataList和Repeater里使用.在本章里我们将一步步用这两种方法在这两个 控件里做示例.

使用ItemDataBound Event Handler

当数据绑定到 DataList时, 无论是使用数据源控件或者 直接在代码里使用DataSource和 DataBind() , DataList的DataBinding 事件都会被激发. DataList 为数据源的 每条记录创建一个 DataListItem 对象,然后绑定到当前记录. 在这个过程中 DataList 激发两个事件:

ItemCreated — 在创建DataListItem 后 激发

ItemDataBound — 当前记录绑定到DataListItem 后激发

下面列出了DataList数据绑定过程的大概步骤

DataList的 DataBinding event 被激发

DataList

对数据源的每条记 录...

For each record in the data source…

创建一个 DataListItem 对象

激发ItemCreated event

绑定记录到 DataListItem

激发ItemDataBound event

将DataListItem 添加到 Items collection

当数据绑定到Repeater时,和上面所说的情况一样.唯一 的区别在于,DataListItem换成了RepeaterItem.

注意:细心的读者可能注 意到了DataList和Repeater绑定到数据时的步骤顺序和GridView有些许差别.在数 据绑定过程的后期,GridView会激发DataBound事件,而DataList和Repeater则都没 有这个事件.

和GridView一样,可以为ItemDataBound事件创建一个event handler 来格式化数据.这个event handler 可以处理刚刚绑定到DataListItem或 RepeaterItem的数据,来按照需要进行格式化.

对DataList来说,可以使用 风格样式相关的属性,如Font, ForeColor, BackColor, CssClass等,来格式化 item.而如果你想格式化Datalist里的template里的web控件,你需要编程去获取这 些控件,然后来控制.我们在Custom Formatting Based Upon Data一章里已经看过 怎样做.和Repeater控件一样,RepeaterItem类也没有风格样式相关的属性,因此, 你需要在ItemDataBound event handler里编程去实现.

由于在DataList和 Repeater里使用ItemDataBound格式化技术从本质上来说是由于的,因此我们的示 例主要讲DataList.

第一步: 在DataList显示Product 信息

Before we worry about the formatting, let’s first cr

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号