ASP.NET 2.0数据教程:GridView显示数据

开发 后端
本文介绍了ASP.NET 2.0中利用GridView显示数据的方法,具体实例为在ProductsForSupplierDetails.aspx上列出供应商的产品。

SupplierListMaster.aspx页面使用户转到ProductsForSupplierDetails.aspx, 并在查询字符串中传递选择的供应商的SupplierID值. 本篇教程的最后一步是在ProductsForSupplierDetails.aspx 页面上的GridView中显示产品. 要实现该功能首先添加GridView到ProductsForSupplierDetails.aspx上,并使用一个新的命名为ProductsBySupplierDataSource的ObjectDataSource控件, 该控件调用ProductsBLL 类的GetProductsBySupplierID(supplierID)方法.

添加一个新的命名为 ProductsBySupplierDataSource 的ObjectDataSource  

GridView显示数据: 添加一个新的命名为 ProductsBySupplierDataSource 的ObjectDataSource

选择ProductsBLL 类 

GridView显示数据: 选择ProductsBLL 类

让ObjectDataSource 调用 GetProductsBySupplierID(supplierID) 方法 

GridView显示数据: 让ObjectDataSource 调用 GetProductsBySupplierID(supplierID) 方法

配置数据源向导的最后一步是要我们提供GetProductsBySupplierID(supplierID) 方法中 supplierID 参数的来源. 要使用查询字符串中的值. 设置参数源为QueryString 并在QueryStringField文本框中输入查询字符串值的名称(SupplierID).

使用查询字符串中的SupplierID值做为supplierID 参数的值 

GridView显示数据: 使用查询字符串中的SupplierID值做为supplierID 参数的值

这样就可以了! 图12显示了当我们在SupplierListMaster.aspx页面中单击Tokyo Traders供应商的”查看产品”链接时所看到的样子.

显示Tokyo Traders 供应商的产品 

GridView显示数据: 显示Tokyo Traders 供应商的产品

在ProductsForSupplierDetails.aspx中显示供应商信息

如图12所示, ProductsForSupplierDetails.aspx只列出了通过在查询字符串中指定的SupplierID的供应商的产品. 然而, 有些人会直接到达该页, 这样他们就不清楚图12中正中显示Tokyo Trader的产品了. 要修正这个问题, 我们可以在页面上显示供应商的信息.

在GridView上方添加一个FormView. 创建一个ObjectDataSource控件并命名为SuppliersDataSource. 该控件调用SuppliersBLL类的GetSupplierBySupplierID(supplierID)方法.

选择 SuppliersBLL 类 

GridView显示数据: 选择 SuppliersBLL 类 

让ObjectDataSource 调用 GetSupplierBySupplierID(supplierID) 方法  

GridView显示数据: 让ObjectDataSource 调用 GetSupplierBySupplierID(supplierID) 方法

使用查询字符串中SupplierID的值为ProductsBySupplierDataSource的supplierID参数赋值.

让supplierID 参数使用查询字符串中的SupplierID 的值  

GridView显示数据: 让supplierID 参数使用查询字符串中的SupplierID 的值

在设计视图中绑定FormView到ObjectDataSource时, Visual Studio 将会自动的创建FormView的ItemTemplate, InsertItemTemplate 和 EditItemTemplate 三个模板, 这些模板使用Label和TextBox Web控件来呈现从ObjectDataSource返回的数据. 因为我们只需要显示供应商信息, 可以移除InsertItemTemplate 和 EditItemTemplat模板. 然后,编辑ItemTemplate模板,使它在标签中显示供应商的公司名称, 在公司名称下面显示地址,城市,国家和电话号码. 另外你也可以手工设置 FormView的 DataSourceID和创建ItemTemplate的标记. 就像我们在后面”使用ObjectDataSource显示数据”一篇中的所作的那样.

修改后,Formview的标记看起来应该是这样:

  1. < asp:FormView ID="FormView1" runat="server" DataKeyNames="SupplierID" DataSourceID="suppliersDataSource" EnableViewState="False">  
  2. < ItemTemplate>  
  3. < h3>< %# Eval("CompanyName") %>< /h3>  
  4. < p>  
  5. < asp:Label ID="AddressLabel" runat="server" Text='< %# Bind("Address") %>'>< /asp:Label>< br />  
  6. < asp:Label ID="CityLabel" runat="server" Text='< %# Bind("City") %>'>< /asp:Label>,  
  7. < asp:Label ID="CountryLabel" runat="server" Text='< %# Bind("Country") %>'>< /asp:Label>< br />  
  8. Phone:  
  9. < asp:Label ID="PhoneLabel" runat="server" Text='< %# Bind("Phone") %>'>< /asp:Label>  
  10. < /p>  
  11. < /ItemTemplate>  
  12. < /asp:FormView>   
  13.  

图16显示了包含了供应商信息后的ProductsForSupplierDetails.aspx页面截屏.

包含供应商概括信息的产品列表 

GridView显示数据: 包含供应商概括信息的产品列表

为ProductsForSupplierDetails.aspx 用户界面应用些小技巧.

要改善该报表的用户体验, 应该给ProductsForSupplierDetails.aspx页面添加点东西. 现在用户从ProductsForSupplierDetails.aspx回到供应商列表页面的唯一方法是单击浏览器的后退按钮. 让我们给ProductsForSupplierDetails.aspx增加一个HyperLink控件, 该控件指向SupplierListMaster.aspx, 这样就给用户提供了另外一个回到供应商列表的方法.

增加一个HyperLink 控件让用户可以回到SupplierListMaster.aspx 

GridView显示数据: 增加一个HyperLink 控件让用户可以回到SupplierListMaster.aspx

如果用户单击了某个供应商的”查看产品”链接,而该供应商又没有任何产品, ProductsForSupplierDetails.aspx 上的ProductsBySupplierDataSource ObjectDataSource将不会返回任何结果. 绑定到ObjectDataSource的GridView不会呈现任何标记, 在用户的浏览器中显示为空白. 要明确的告诉用户没有与选定供应商关联的产品,我们可以设置GridView的EmptyDataText属性为当出现这种情况是我们想要显示的消息. 我们把它设置为:” 没有这个供应商的产品…”;

默认情况下, Northwinds数据库中所有的供应商提供了至少一个产品. 但是, 在本篇教程中我已经手工修改了产品表, 这样供应商Escargots Nouveaux不再关联任何产品. 图18显示了修改后的供应商Escargots Nouveaux的详细页面.

提示用户该供应商没有提供任何产品. 

GridView显示数据: 提示用户该供应商没有提供任何产品.

【编辑推荐】

  1. ASP.NET 2.0数据教程:给站点添加aspx页面
  2. ASP.NET 2.0数据教程:创建母版页
  3. ASP.NET跨页面传值的技巧
  4. ASP.NET 2.0数据教程:给DAL添加定制编码
  5. ASP.NET 2.0数据教程:完成数据访问层
责任编辑:book05 来源: 博客堂
相关推荐

2009-07-27 16:22:54

GridView选择行

2009-07-27 16:53:15

ASP.NET 2.0

2009-07-24 17:15:52

SiteMapData

2009-07-24 13:25:43

创建数据访问层

2009-07-24 12:41:21

BLL类

2009-07-24 16:37:04

创建母版页asp.net 2.0

2009-07-27 03:21:00

breadcrumb导

2009-07-27 09:01:44

ObjectDataS

2009-07-24 17:08:31

添加站点地图asp.net

2009-07-24 14:15:51

数据访问层

2009-07-27 09:39:04

SelectMetho

2009-07-27 15:58:25

添加GridView

2009-07-23 14:43:24

数据源控件ASP.NET 2.0

2009-07-27 09:28:55

TableAdapte

2009-07-22 17:21:27

ASP.NET 2.0

2009-07-28 14:06:28

ASP.NET 2.0

2009-07-24 14:02:39

ASP.NET 2.0

2009-07-27 08:51:24

ObjectDataS

2009-07-20 18:02:48

GridView控件ASP.NET 2.0

2009-07-24 16:55:53

添加aspx页面
点赞
收藏

51CTO技术栈公众号