快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
ew对象的引用,通过它的Row属 性可以获取ProductsRow对象.

下面我们来检查ProductsRow实例的单价属 性.由于Product表的UnitPrice字段允许空值,所以在获取UnitPrice属性前我们应 该先用IsUnitPriceNull()方法检查这个值是否为空.如果不是,我们再检查看它是 否低于$20.00.如果是,我们就进行格式化处理.

第三步: 是Product的 Name 和Price高亮显示

一旦我们发现Product的price低于$20.00,我们将 使它的name和price显示高亮.首先我们要编程获得ItemTemplate里显示Product的 name和price的Label控件.然后我们将它的背景色显示为黄色.这个可以直接通过 修改Label空间的BackColor属性(LabelID.BackColor = Color.Yellow).当然最理 想的做法是所有的显示相关的行为都通过CSS来实现.实际上我们在基于数据的自 定义格式化一章里创建的Styles.css - AffordablePriceEmphasis已经提供了这 个功能.

使用以下代码设置两个Label控件的CssClass 属性为 AffordablePriceEmphasis来完成格式化:

C#

// Highlight the product name and unit price Labels
// First, get a reference to the two Label Web controls
Label ProductNameLabel = (Label) e.Item.FindControl("ProductNameLabel");
Label UnitPriceLabel = (Label)e.Item.FindControl ("UnitPriceLabel");
// Next, set their CssClass properties
if (ProductNameLabel != null)
ProductNameLabel.CssClass = "AffordablePriceEmphasis";
if (UnitPriceLabel != null)
UnitPriceLabel.CssClass = "AffordablePriceEmphasis";

ItemDataBound 事件完 成后,在浏览器里浏览Formatting.aspx页.如图2所示,价格低于 $20.00 的 product的name和prict都高亮显示了.

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

图2: 价格低于$20.00 的product都被高亮显示

注意:由于 DataList使用 HTML <table>, DataListItem实例有可以设置整个item风格 的属性.比如,如果我们想在price低于$20.00时将所有的item都用黄色来高亮显示 ,我们可以用e.Item.CssClass = "AffordablePriceEmphasis"来代替 上面的代码(见图3).

而组成Repeater的RepeaterItem并没有提供这样的属 性.因此,在Repeater里自定义格式需要设置templates里的控件的格式,象在图2里 所做的那样.

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

图 3: The Entire Product Item is Highlighted for Products Under $20.00

使用Template的格式化功能

在在GridView控件中使 用TemplateField 一章里,我们学习了如何使用GridView TemplateField的格式化 功能来格式化GridView的数据.格式化功能是一种可以从template里调用并返回 HTML显示的方法.格式化功能可以写在ASP.NET page的 code-behind class 或 App_Code 文件夹里的类文件里或单独的类库项目里.如果你想在其它ASP.NET web 程序或多个ASP.NET 页用到同样的功能,那么不要把它下在ASP.NET page的 code -behind class 里.

为了演示这个功能,我们将修改product信息.如果 product被停用,我们在product的name后面增加一个“[DISCONTINUED] ”的text.同样的,如果price低于 $20.00 我们将会用黄色来高亮显示(如我 们在ItemDataBound event handler例子里做的那样).如果price等于或高于 $20.00,我们将不显示实际的价格,而是在text里显示“Please call for a price quote”. 图4是完成以上功能的页面截图.

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

图 4: 将比较贵的Products 的价格用文本“Please call for a price quote”来代替.

第一步: 创建格式化功能

这个例子里 我们需要两个格式化功能,其一是在被停用的product name后面加上“ [DISCONTINUED]”, 其二是对价格低于$20.00的product高亮显示,其它则显 示“Please call for a

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号