ASP.NET 2.0数据教程之三十:格式化DataList和Repeater的数据
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#
ItemDataBound 事件完 成后,在浏览器里浏览Formatting.aspx页.如图2所示,价格低于 $20.00 的 product的name和prict都高亮显示了. 图2: 价格低于$20.00 的product都被高亮显示 注意:由于 DataList使用 HTML <table>, DataListItem实例有可以设置整个item风格 的属性.比如,如果我们想在price低于$20.00时将所有的item都用黄色来高亮显示 ,我们可以用e.Item.CssClass = "AffordablePriceEmphasis"来代替 上面的代码(见图3). 而组成Repeater的RepeaterItem并没有提供这样的属 性.因此,在Repeater里自定义格式需要设置templates里的控件的格式,象在图2里 所做的那样. 图 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是完成以上功能的页面截图. 图 4: 将比较贵的Products 的价格用文本“Please call for a price quote”来代替. 第一步: 创建格式化功能 这个例子里 我们需要两个格式化功能,其一是在被停用的product name后面加上“ [DISCONTINUED]”, 其二是对价格低于$20.00的product高亮显示,其它则显 示“Please call for a |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |