ASP.NET 2.0中的数据操作之九:跨页面的主/从报表(2)

  要指定静态值和数据驱动值的混合物, 使用DataTextFormatString和DataNavigateUrlFormatString属性. 在这些属性中按需要输入静态文本,要显示DataTextField或DataNavigateUrlFields属性中特定的字段时使用{0}标记. 如果DataNavigateUrlFields中有多个字段,在需要第一个字段时使用{0}, 第二个字段使用{1},以此类推.

  对于我们这篇教程来说, 我们需要设置DataNavigateUrlFields为SupplierID, 因为我们需要使用该数据字段自定义每行的链接.

/uploads/allimg/200612/1P1205635_0.png

图6: 配置HyperLinkField 使用合适的基于SupplierID 的链接地址.

  添加了HyperLinkField后, 可以自定义及重新排列GridView的字段. 下面是我做了修改后的标记 (markup):

  在浏览器中访问一下SupplierListMaster.aspx. 如图7所示, 页面列出了所有的供应商,每个供应商包含”查看产品”链接. 单击”查看产品”链接会转到ProductsForSupplierDetails.aspx, 并在查询字符串中传递供应商的SupplierID值.

/uploads/allimg/200612/1P1214340_0.png

图 7: 每个供应商都包含”查看产品”链接.

Step 3: 在ProductsForSupplierDetails.aspx上列出供应商的产品

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

/uploads/allimg/200612/1P1214251_0.png

图8: 添加一个新的命名为 ProductsBySupplierDataSource 的ObjectDataSource

/uploads/allimg/200612/1P122Q55_0.png

图9: 选择ProductsBLL 类

/uploads/allimg/200612/1P1232a4_0.png

图10: 让ObjectDataSource 调用 GetProductsBySupplierID(supplierID) 方法

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

/uploads/allimg/200612/1P1233404_0.png

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

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

/uploads/allimg/200612/1P124Y54_0.png

图12: 显示Tokyo Traders 供应商的产品

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

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

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

/uploads/allimg/200612/1P1242119_0.png

图13: 选择 SuppliersBLL 类

/uploads/allimg/200612/1P124V64_0.png

图14: 让ObjectDataSource 调用 GetSupplierBySupplierID(supplierID) 方法

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

/uploads/allimg/200612/1P1256063_0.png

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjwzyw.html