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 2: 在DataBound事件中编码确定数据的值
为了将那些UnitPrice高于$75.00的产品用粗体,italic字体显示出来,我们首先需要编码确定UnitPrice的值,对于DetailsView我们可以通过DataBound事件完成. 我们选择DetailsView并查看属性视图(F4位快捷键), 如果没有显示,则选择 View(视图)
Property Window(属性窗口), 在确保您选择了DetailsView的情况下双击DataBound事件或者输入您要创建的事件名
图三: 为DataBound事件创建一个事件处理
代码中将会自动生成以下代码
protected void ExpensiveProductsPriceInBoldItalic_DataBound(object sender, EventArgs e) {
} |
我们可以通过DataItem属性来设置DetailsView的绑定项(一些强类型的数据行(DataRow)组成的强类型的数据表(DataTable)), 当数据表(DataTable)绑定到DetailsView时,数据表的第一行将被自动绑定到DetailsView的DataItem属性,而DataItem属性中包含有DataRowView (Object类型),我们可以通过DataRowView来访问一个ProductsRow 的DataRow实例,还可以检测Object的值来确定ProductsRow实例是否存在
下面的代码描述如何确定UnitPrice是否绑定到DetailsView并且高于$75.00
protected void ExpensiveProductsPriceInBoldItalic_DataBound(object sender, EventArgs e) { // Get the ProductsRow object from the DataItem property... Northwind.ProductsRow product = (Northwind.ProductsRow)((System.Data.DataRowView) ExpensiveProductsPriceInBoldItalic.DataItem).Row; if (!product.IsUnitPriceNull() && product.UnitPrice > 75m) { // TODO: Make the UnitPrice text bold and italic } } |
注意: 当UnitPrice在数据库的值为空,我们在绑定到ProductsRow’s UnitPrice属性之前检查确定他是否为空,这很重要因为我们可以通过检查这个属性来抛出一个强类型的异常 StrongTypingException exception.