Welcome 微信登录

首页 / 网页编程 / ASP.NET / ASP.NET 2.0数据教程之十三:在DetailsView控件中使用TemplateField

ASP.NET 2.0数据教程之十三:在DetailsView控件中使用TemplateField2010-08-09 翻译:cnblogs №.零零伍返回“”

导言

比起BoundField、CheckBoxField、HyperLinkField以及其他的那 些数据字段控件(data field controls)来说,TemplateField提供了一种高度 复杂的数据呈现的方法。在上一节中,我们主要着重于在GridVIew中使用 TemplateField,以实现:

· 在一列中显示多个数据字段。比如 说,将FirstName和LastName字段合并起来显示在一个GridView列中。

· 使用交互Web控件来展示数据。我们看到了如何使用一个 Calendar控件来显示HiredDate的值。

· 显示基于潜在数据的状 态信息。尽管Employees表中并没有包含一个关于雇员在公司干了多久的数据列, 但我们仍然可以使用TemplateField 和格式化方法在GridView中实现这样的功能 ,就像我们在上一节中做的那样。

就像在GridView中那样,DetailsView 控件也可以同样的使用TemplateField。在本节教程中,我们将使用一个包含两个 TemplateField的DetailsView来一次一个的显示产品信息。第一个TemplateField 将整合UnitPrice、UnitsInStock和UnitsOnOrder等数据并显示在一个 DetailsView行上。第一个TemplateField则将显示Discontinued的数据,不过将 使用格式化方法,在有折扣的时候就显示“YES”,否则就显示 “NO”。

图一:使用两个模板列来自定义显示

好了,让我们开始吧!

第一步:将数据绑定到DetailsView

像前一节中所讨论的那样, 要使用TemplateField最简单的办法就是先创建一个仅包含BoundField的 DetailsView控件,然后添加新的TemplateField或是将某些BoundField转换成 TemplateField。因此,我们先通过设计器向页面上添加一个DetailsView控件, 并绑定一个返回产品列表的ObjectDataSource给它。这些操作将创建一个带有 BoundField和CheckBoxField 的DetailsView,BoundField用于非布尔值, CheckBoxField当然就是用于布尔值了(比如说“是否打折”)。

打开DetailsViewTemplateField.aspx页面,从工具箱中拖一个 DetailsView到设计器上。从DetailsView的智能标签(smart tag)上选择并添加 一个新的调用ProductsBLL类的GetProducts ()方法的ObjectDataSource控件。

图二:添加一个新的调用GetProducts ()方法的ObjectDataSource控件