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

返回“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.

时间: 2024-11-10 00:23:31

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

在ASP.NET 2.0中操作数据之三十五:使用Repeater和DataList单页面实现主/从报表_自学过程

导言 在前面一章里我们学习了如何用两个页分别显示主/从信息.在"主"页里我们用Repeater来显示category.每个category的name都是一个链到"从"页的hyperlink.在从页里用一个两列的DataList显示选中的category下的product.本章我们将还是使用单页,在左边显示category列表,category的名字用LinkButton显示.点击其中一个时页面postback,在右边以两列的DataList显示出相关的product

ASP.NET 2.0数据教程之四十四:DataList和Repeater数据分页

返回"ASP.NET 2.0数据教程目录" 导言 分页和排序是显示数据时经常用到的功能.比如,在一个在线书 店里搜索关于ASP.NET 的书的时候,可能结果会是成百上千,而每页只列出十条 .而且结果可以根据title(书名),price(价格),page count(页数), author name(作者)等来排序.我们在分页和排序报表数据 里已经讨论过, GridView, DetailsView, 和FormView 都有内置的分页功能,仅仅只需要勾一个 checkbox就可以开启

ASP.NET 2.0数据教程之四十六:DataList和Repeater里的自定义button

返回"ASP.NET 2.0数据教程目录" 导言 在前面关于DataList 和Repeater 的7章教程里,我们分别创建了 只读和可以编辑删除的例子.为了让DataList有编辑和删除的功能,我们在 ItemTemplate里添加了一些button,当点击时,引起postback,并根据button的 CommandName属性激发相关的事件.例如,添加一个CommandName为 "Edit"的button,在postback时会激发EditCommand事件

ASP.NET 2.0数据教程之四十五:DataList和Repeater数据排序(三)

返回"ASP.NET 2.0数据教程目录" 第七步: 在自定义分页的Repeater 里添加排序功能 现在已经完成了自 定义分页,我们再来添加排序功能.ProductsBLL类的 GetProductsPagedAndSorted方法和GetProductsPaged一样有startRowIndex 和 maximumRows 参数,不一样的是它还多了一个sortExpression 参数.在 SortingWithCustomPaging.aspx里使用GetProductsPage

ASP.NET 2.0数据教程之四十五:DataList和Repeater数据排序(二)

返回"ASP.NET 2.0数据教程目录" 第五步: 为使用默认分页的DataList添加排序的支持 在前面一章里我 们学习了如何使用DataList的默认分页.现在我们来扩展它,让它可以对分页的 数据进行排序.打开PagingSortingDataListRepeater文件夹里的 SortingWithDefaultPaging.aspx和Paging.aspx 页.在Paging.aspx 页里查看源 文件.将图8里选择的文本复制下来,然后粘贴到 SortingWithDefau

ASP.NET 2.0数据教程之四十五:DataList和Repeater数据排序(一)

返回"ASP.NET 2.0数据教程目录" 导言 DataList和Repeater数据分页里我们学习了如何在DataList里添 加分页功能.我们在ProductsBLL类里创建了一个名为 GetProductsAsPagedDataSource的方法,它返回一个PagedDataSource对象.当绑 定到DataList或Repeater时,他们将只显示请求页的数据.这个技术和GridView ,DetailsView,FormView的内置分页功能原理差不多. 除了分页外, G

在ASP.NET 2.0中操作数据之三十:格式化DataList和Repeater的数据_自学过程

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

ASP.NET 2.0数据教程之三十二:数据控件的嵌套

返回"ASP.NET 2.0数据教程目录" 导言 除了静态HTML和数据绑定语法,template也可以包含Web控件和用 户控件.这些控件的属性可以通过声明语法,数据绑定语法或在服务器端通过事件 处理编程来设置. 通过将控件嵌入到template里,可以自定义界面,提升用 户体验.例如,在在GridView控件中使用TemplateField 里,我们学习了如何通过在 GridView的TemplateField里加一个Calendar控件来表示员工的雇佣日期.在给编 辑和新增界面增

ASP.NET 2.0数据教程之三十九:在编辑和插入界面里添加验证控件

返回"ASP.NET 2.0数据教程目录" 导言 到目前为止的讨论编辑DataList的教程里,没有包含任何验证用户的输入,即使是用户非法输入- 遗漏了product的name或者负的 price- 会导致异常.在前面一章里我们学习了如何在DataList的 UpdateCommand事件处理中添加异常处理代码,以便在出现异常时捕捉它并显示友 好的错误信息.然而理想的编辑界面应该包含验证控件,用来在第一时间里阻止 用户输入一些非法数据. 第一步:从 处理 BLL和 DAL的异常复制例子