• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > ASP.NET 2.0中的数据操作之九:跨页面的主/从报表

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

作者:heker2007 字体:[增加 减小] 来源:互联网 时间:2017-05-11

heker2007通过本文主要向大家介绍了iis注册asp.net2.0,下载asp.net 2.0,asp net2.0,注册asp.net2.0,安装asp.net 2.0等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

导言

  在前面的两篇教程中,我们看到了如何在单一页面中显示主/从报表, 它使用DropDownList显示主记录,使用GridView或DetailsView显示详细信息. 另外一种常见的主/从报表模式是在一个页面中显示主记录而在另一个页面中显示详细信息.互联网上的论坛,如www.asp.net ,就是该模式在实际应用中非常典型例子. Asp.Net论坛由多个子论坛组成: Getting Started, Web Forms, Data Presentation Controls 等等. 每个子论坛包含多个主题, 每个主题又由多个贴子组成. 在asp.net论坛主页上列出了这些子论坛,单击其中一个论坛会转到ShowForum.aspx页面, 该页面列出了这个子论坛所包含的主题. 同样,单击一个主题会转向ShowPost.aspx, 该页面显示所单击主题的贴子.

  在这篇教程中,我们将通过使用GridView列出供应商来实现该模式. GridView中的每行(一行便是一个供应商)包含一个”查看产品”的链接. 该链接在单击时会转到另外一个页面, 这个页面显示选中供应商的所有产品.

Step 1: 在Filtering文件夹下添加 SupplierListMaster.aspx 和ProductsForSupplierDetails.aspx

  在第三篇教程中定义页面结构时我们在BasicReporting, Filtering, 和 CustomFormatting文件夹中增加了好几个起始页面.我们还没有为这篇教程中添加起始页,在Filtering文件夹中增加两个页面: SupplierListMaster.aspx 和 ProductsForSupplierDetails.aspx. SupplierListMaster.aspx将会列出主记录(供应商) ProductsForSupplierDetails.aspx将会显示选中供应商的产品.

  在创建这两个页面时注意要让它们关联Site.master母版页.

http://files.weikejianghu.com/file_images/article/201605/20165495652078.png

图1: 在Filtering文件夹下添加 SupplierListMaster.aspx 和ProductsForSupplierDetails.aspx

  此外, 添加了两个文件到该项目后, 要确保相应地更新站点地图文件Web.sitemap. 对于该篇教程只要简单地使用下面的XML内容做为元素的子节点

提示:使用K. Scott Allen的免费的Visual Studio Site Map Macro可以帮助你在新增ASP.NET页时自动地更新站点地图.

Step 2: SupplierListMaster.aspx中显示供应商列表

  添加SupplierListMaster.aspx 和 ProductsForSupplierDetails.aspx后,接下来就是要在SupplierListMaster.aspx页面上创建一个显示供应商的GridView. 添加一个GridView到页面上并绑定到一个新的ObjectDataSource, 这个ObjectDataSource应该使用SuppliersBLL类的GetSuppliers()方法返回所有供应商.

http://files.weikejianghu.com/file_images/article/201605/2016050409491337.png

图2: 选择 SuppliersBLL 类

http://files.weikejianghu.com/file_images/article/201605/2016050409491338.png

图3: 配置ObjectDataSource 使用GetSuppliers() 方法

  我们需要在每个GridView行中包含一个”查看产品”链接,单击时该链接会转到ProductsForSupplierDetails.aspx页面, 并在查询字符串(querystring)传递选定行的SupplierID值.比如如果用户单击了供应商Tokyo Traders(SupplierID值为4)的”查看产品”链接,将会转到ProductsForSupplierDetails.aspx?SupplierID=4.

  要实现该功能, 给GridView添加一个HyperLinkField列, 它会为每个GridView行增加一个链接. 首先在GridView智能标记上单击编辑列链接. 然后在左上角的列表中选择HyperLinkField并单击新增把HyperLinkField添加到GridView的字段列表中.

http://files.weikejianghu.com/file_images/article/201605/2016050409491739.png

图4: 添加 HyperLinkField 到GridView

  HyperLinkField可以被配置为在每一个GridView行中使用相同的文本或URL值,或是让这些值基于绑定到特定行的数据值. 要指定一个所有行都一样的静态值使用HyperLinkField的Text或NavigateUrl属性. 因为我们想让每一行的链接文本一致,设置HyperLinkField的Text属性为”查看产品”.

http://files.weikejianghu.com/file_images/article/201605/2016050409491740.png

图5: 设置HyperLinkField的Text属性为”查看产品”

  要让text 或URL基于绑定到GridView行的底层数据, 可能通过DataTextField 或 DataNavigateUrlFields指定Text或URL要从中获取数据的数据字段. DataTextField只能设置为一个单一的数据字段; DataNavigateUrlFields可以设置为一个以逗号分隔的数据字段列表. 我们需要让TEXT或URL基于当前行的数据字段值和一些标记. 比如在这篇教程中,我们希望 HyperLinkField的链接URL是ProductsForSupplierDetails.aspx?SupplierID=supplierID. 其中supplierID是GridView的每个行的supplierID值. 注意我们需要静态值和数据驱动值. ProductsForSupplierDetails.aspx?SupplierID=这部分是静态值.而supplierID部分便是数据驱动的, 它的值是每一行的SupplierID值.

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

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

http://files.weikejianghu.com/file_images/article/201605/2016050409491741.png

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

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

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

http://files.weikejianghu.com/file_images/article/201605/2016050409491842.png

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

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

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

http://files.weikejianghu.com/file_images/article/201605/2016050409491843.png

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

http://files.weikejianghu.com/file_images/article/201605/2016050409491844.png

图9: 选择ProductsBLL 类

http://files.weikejianghu.com/file_images/article/201605/2016050409491845.png

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

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

http://files.weikejianghu.com/file_images/article/201605/2016050409492246.png

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

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

http://files.weikejianghu.com/file_images/article/201605
<script async src=

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • ASP.NET 修复 IIS 映射具体实现步骤
  • ASP.NET 2.0中的数据操作之九:跨页面的主/从报表
  • ASP.NET 2.0中的数据操作之八:使用两个DropDownList过滤的主/从报表
  • ASP.NET 2.0中的数据操作之七:使用DropDownList过滤的主/从报表
  • ASP.NET2.0使用Enter Key作为默认提交问题分析(附源码)
  • ASP.NET用户注册实战(第11节)
  • asp.net无法获取iis目录的问题解决方法
  • asp.net2.0中css失效的解决方法
  • asp.net不用设置iis实现url重写 类似伪静态路由
  • Asp.net 2.0 无刷新图片上传 显示缩略图 具体实现

相关文章

  • 2017-05-11asp.net数据绑定时动态改变值的代码
  • 2017-05-11ASP.NET配合jQuery解决跨域调用的问题
  • 2018-08-20c# .Net Core静态文件服务器的新人入门教程
  • 2017-05-11在ASP.NET里得到网站的域名
  • 2017-05-11Global.asax的Application_BeginRequest实现url重写无后缀的代码
  • 2017-05-11解析xHTML源码的DLL组件AngleSharp介绍
  • 2017-05-11解析利用wsdl.exe生成webservice代理类的详解
  • 2017-05-11.net的socket异步通讯示例分享
  • 2018-08-20解决Win10无法安装.Net Framework 3.5提示错误代码0x800F081F
  • 2017-05-11《解剖PetShop》之三:PetShop数据访问层之消息处理

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • .NET framework 4.0 安装失败回滚问题
    • ASP.net中保持页面中滚动条状态的代码
    • ASP.NET使用GridView导出Excel实现方法
    • .net WCF简单实例详解(5)
    • .net动态显示当前时间(客户端javascript)
    • ASP.NET+XML打造网络硬盘原理分析
    • VS2010/VS2013项目创建 ADO.NET连接mysql/sql server详细步骤
    • MVC+EasyUI+三层新闻网站建立 实现登录功能(四)
    • .net邮箱发布邮箱信息的实例
    • asp.net LINQ中数据库连接字符串的问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有