您的位置:知识库 » .NET技术

ASP.NET 2.0数据教程之十一:基于数据的自定义格式化

作者: xwang  来源: 博客园  发布时间: 2008-10-14 13:52  阅读: 5087 次  推荐: 0   原文链接   [收藏]  

系列文章导航:

ASP.NET 2.0数据教程之一:创建一个数据访问层

ASP.NET 2.0数据教程之二:创建一个业务逻辑层

ASP.NET 2.0数据教程之三:母板页和站点导航

ASP.NET 2.0数据教程之四:使用ObjectDataSource展现数据

ASP.NET 2.0数据教程之五:声明参数

ASP.NET 2.0数据教程之六:编程设置ObjectDataSource的参数值

ASP.NET 2.0数据教程之七:使用DropDownList过滤的主/从报表

ASP.NET 2.0数据教程之八:使用两个DropDownList过滤的主/从报表

ASP.NET 2.0数据教程之九:跨页面的主/从报表

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时,数据表的第一行将被自动绑定到DetailsViewDataItem属性,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.

0
0

.NET技术热门文章

    .NET技术最新文章

      最新新闻

        热门新闻