ASP.NET 2.0数据教程之十一:基于数据的自定义格式化
[2] ASP.NET 2.0数据教程之十一:基于数据的自定义格式化
[3] ASP.NET 2.0数据教程之十一:基于数据的自定义格式化
[4] ASP.NET 2.0数据教程之十一:基于数据的自定义格式化
[5] ASP.NET 2.0数据教程之十一:基于数据的自定义格式化
[6] ASP.NET 2.0数据教程之十一:基于数据的自定义格式化
[7] ASP.NET 2.0数据教程之十一:基于数据的自定义格式化
[8] ASP.NET 2.0数据教程之十一:基于数据的自定义格式化
[9] ASP.NET 2.0数据教程之十一:基于数据的自定义格式化
[10] ASP.NET 2.0数据教程之十一:基于数据的自定义格式化
[11] ASP.NET 2.0数据教程之十一:基于数据的自定义格式化
系列文章导航:
ASP.NET 2.0数据教程之四:使用ObjectDataSource展现数据
ASP.NET 2.0数据教程之六:编程设置ObjectDataSource的参数值
ASP.NET 2.0数据教程之七:使用DropDownList过滤的主/从报表
ASP.NET 2.0数据教程之八:使用两个DropDownList过滤的主/从报表
ASP.NET 2.0数据教程之十:使用 GridView 和DetailView实现的主/从报表
ASP.NET 2.0数据教程之十一:基于数据的自定义格式化
ASP.NET 2.0数据教程之十二:在GridView控件中使用TemplateField
Step 6:在FormView 的ItemTemplate中格式化UnitsInStockLabel Label
最后一步就是要在ItemTemplate中设置UnitsInStockLabel的样式为红色字体,在ItemTempelete中查找控件可以使用FindControl(“controlID”)方法
WebControlType someName = (WebControlType)FormViewID.FindControl("controlID"); |
对于我们这个例子我们可以用如下代码来查找该Label控件
Label unitsInStock = (Label)LowStockedProductsInRed.FindControl("UnitsInStockLabel"); |
当我们找到这个控件时则可以修改其对应的style属性,在style.css中已经有一个写好的LowUnitsInStockEmphasis的cSS Class ,我们通过下面的代码将cSS Class设置到对应的属性
protected void LowStockedProductsInRed_DataBound(object sender, EventArgs e) { // Get the ProductsRow object from the DataItem property... Northwind.ProductsRow product = (Northwind.ProductsRow)((System.Data.DataRowView)LowStockedProductsInRed.DataItem).Row; if (!product.IsUnitsInStockNull() && product.UnitsInStock <= 10) { Label unitsInStock = (Label)LowStockedProductsInRed.FindControl("UnitsInStockLabel");
if (unitsInStock != null) { unitsInStock.CssClass = "LowUnitsInStockEmphasis"; } } } |
注意: 这种方式在FormView和GridView中也可以通过设置TemplateFields来达到同样的效果,我们将在下一篇中讨论TemplateFields
图7显示FormView在当UnitsInStock大于10的情况,图8则显示小于等于10的情况
图7 : 在高于10的情况下,没有值被格式化
图8:小于等于10时,值用红色字体显示