GridView和DetailsView在同一页与不同页两种情况的联动

ASP.NET中GridView与DetailsView联动实现主从表数据展示 再完美的设计也逃不过用户的“神操作”。我们必须提前应对各种异常情况。回顾整个流程,我们走过了这样一条路:🔧技术层:理解控件机制 → 配置数据源 → 实现主从联动⚡性能层:避免重复绑定 → 启用缓存 → 懒加载🎨体验层:CSS美化 → 局部刷新 → 弹窗交互🛡️健壮层:异常处理 → 参数校验 → 边界兜底最终打造出的,不是一个简单的“两个控件拼在一起”的页面,而是一个高内聚、低耦合、易维护、体验佳的企业级数据展示系统。 阅读详情

本文摘自MSDN帮助:ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_vwdcon/html/e3ab20ae-44c3-43f0-91f3-0f95fff47b48.htm
 
在同一页中显示主/详细信息数据
在本部分演练中,将在一个页中显示相关表的数据。主表数据显示在网格中,用户可在该网格中选择单个行。当用户选择单个行时,一条或多条详细信息记录显示在页上其他位置的可滚动控件中。出于演示的目的,将使用 Northwind 类别表作为主表,产品表作为详细信息表。

显示主记录
向网站添加一个新页,并将其命名为“MasterDetails2.aspx”。

切换到“设计”视图。

在页中键入“主/详细信息页”,并将文本格式设置为标题。

从“工具箱”的“数据”组中,将一个“GridView”控件拖到该页上。

在“GridView 任务”菜单的“选择数据源”列表中,单击“<新建数据源>”,然后使用下列步骤为“GridView”控件配置数据源:

选择“数据库”。

单击“确定”。

从连接下拉列表中,选择在演练前面部分创建并存储的连接(“NorthwindConnectionString”)。

单击“下一步”。

从“名称”列表中,选择“类别”。

在“列”框中,选择“CategoryID”和“CategoryName”。

单击“下一步”,然后单击“完成”。

选择“GridView”控件,并在“GridView 任务”菜单中选择“编辑列”。

显示“字段”对话框。

在“可用字段”下,打开“命令字段”节点,选择“选择”,然后单击“添加”将其添加到“选定的字段”列表中。

在“选定的字段”列表中,选择“选择”,然后在“CommandField”属性网格中,将其“SelectText”属性设置为“详细信息”。

单击“确定”关闭“字段”对话框。

具有“详细信息”超链接的新列即添加到网格中。

选择“GridView”控件,在“属性”窗口中确认其“DataKeyNames”属性设置为 CategoryID。

这样即指定了当您在网格中选择一行时,ASP.NET 可在已知位置找到当前显示的“类别”记录的键。

使用网格可以选择单个类别。下一步是添加 DetailsView 控件,该控件将显示详细信息记录 -- 与选定类别关联的产品。DetailsView 控件将使用另一个 SQL 查询来获取其数据,因此它需要另一个数据源控件。

配置查询以显示相关记录
在“详细信息”视图中,在 MasterDetails2.aspx 页上的“SqlDataSource1”控件下面按 Enter 可以产生空白。

从“工具箱”的“数据”组中,将一个“DetailsView”控件拖到该页上。

将该控件配置为使用另一个数据源控件,步骤如下:

从“选择数据源”列表中,选择“<新建数据源>”。

选择“数据库”。

单击“确定”。

在连接下拉列表中,单击在演练前面部分创建并存储的连接。

单击“下一步”。

从“表或视图选项”下的“名称”列表中,选择“产品”。

在“列”框中,选择“ProductID”、“ProductName”和“CategoryID”。

单击“WHERE”。

显示“添加 WHERE 子句”对话框。

从“列”列表中,选择“CategoryID”。

从“运算符”列表中,选择“=”。

从“源”列表中,选择“控件”。

在“参数属性”下的“控件 ID”列表中,选择“GridView1”。第二个网格的查询将从第一个网格中的选中项获取其参数值。

单击“添加”,然后单击“确定”,关闭“添加 WHERE 子句”对话框。

单击“下一步”。

在“预览”页中,单击“测试查询”。

向导将显示一个对话框,提示您输入一个要在 WHERE 子句中使用的值。

在框中键入“4”,然后单击“确定”。

显示类别 4 的产品记录。

单击“完成”。

在“DetailsView 任务”菜单中,选中“启用分页”。

这样即可滚动查看产品记录。

也可以在“属性”窗口中,打开“PagerSettings”节点,选择其他“模式”值。

默认情况下,是通过单击页码来按页浏览记录的,不过,您可以选择使用下一页和上一页链接。

现在可以测试主网格和详细信息视图的组合。

对页进行测试
按 Ctrl+F5 运行该页。

在网格中,选择一个类别。

“DetailsView”控件显示与该类别关联的产品。

使用“DetailsView”控件中的页链接导航到同一类别的其他产品。

在网格中,选择另一个类别。

在“DetailsView”控件中查看该类别的产品。

在演练的最后部分,将使用另一种形式 -- 在不同的页上显示主记录和详细信息记录。主记录再次显示在网格中,其中网格包含对应于每条记录的超链接。当用户单击超链接时,他们会导航到另一个页,在该页中,他们可在显示产品全部记录的 DetailsView 控件中查看详细信息记录。

显示主记录
向网站添加一个新页,并将其命名为“MasterCustomers.aspx”。

切换到“设计”视图。

在页中键入“客户”,并将文本格式设置为标题。

从“工具箱”的“数据”文件夹中,将一个“GridView”控件拖到该页上。

在控件上的“GridView 任务”菜单中,从“选择数据源”列表中选择“<新建数据源>”,然后使用向导执行以下操作:

单击“数据库”。

连接到 Northwind 数据库(连接“NorthwindConnectionString”)。

从“客户”表中检索“CustomerID”、“CompanyName”和“City”列。

也可以在“GridView 任务”菜单中,选中“启用分页”复选框。

在“GridView 任务”菜单中,选择“编辑列”。

显示“字段”对话框。

清除“自动生成字段”复选框。

在“可用字段”下,选择“超链接字段”,单击“添加”,然后设置下列属性:

 属性  值
Text
 Details
 
DataNavigateUrlFields CustomerID

指示超链接应从“CustomerID”列获取其值
 
 DataNavigateUrlFormatString DetailsOrders.aspx?custid={0}
创建用来导航到 DetailsOrders.aspx 页的硬编码链接。该链接还传递名为 custid 的查询字符串变量,该变量的值将使用 DataNavigateUrlFields 属性中引用的列进行填充。
 

 

单击“确定”关闭“字段”对话框。

现在可以创建接受母版页值的详细信息页。

创建详细信息页
向网站添加一个新页,并将其命名为“DetailsOrders.aspx”。

切换到“设计”视图。

在页中键入“订单”,并将文本格式设置为标题。

从“工具箱”的“数据”文件夹中,将一个“GridView”控件拖到该页上。

在控件上的“GridView 任务”菜单中,从“选择数据源”列表中选择“<新建数据源>”

在“选择数据源类型”列表中,单击“数据库”,然后单击“确定”。

从连接列表中,选择在演练前面部分创建并存储的连接(“NorthwindConnectionString”)。

单击“下一步”。

向导将显示一页,在该页中可以创建 SQL 语句。

从“名称”列表中,选择“订单”。

在“列”框中,选择“OrderID”、“CustomerID”和“OrderDate”。

单击“WHERE”。

从“列”列表中,选择“CustomerID”。

从“运算符”列表中,选择“=”。

从“源”列表中,选择“QueryString”。

指定查询将根据查询字符串传入页的值选择记录。

在“参数属性”下的“QueryString 字段”框中,键入“custid”。

查询将从查询字符串中获取客户 ID 值,查询字符串是在单击 MasterCustomers.aspx 页中的“详细信息”链接时创建的。

单击“添加”。

单击“确定”关闭“添加 WHERE 子句”对话框。

单击“下一步”,然后单击“完成”关闭向导。

从“工具箱”的“标准”节点中,将一个“Hyperlink”控件拖到该页上。将其“Text”属性设置为“返回至客户”,并将其“NavigateUrl”属性设置为“MasterCustomers.aspx”。

现在可以测试相关的主/详细信息页。

对页进行测试
切换到 MasterCustomers.aspx 页。

按 Ctrl+F5 运行该页。

单击客户的“详细信息”链接。

浏览器显示含有所选客户的订单的 DetailsOrders.aspx 页。注意,浏览器的“地址”框中的 URL 为:      

 DetailsOrder.aspx?custid=x

 其中 x 是所选客户的 ID。

  4.单击“返回至客户”链接,选择另一个客户,然后再次单击“详细信息”链接,测试是否可以查看任何客户的订单。
 

DataGridView显示主从表示例及注意事项 在.NET的Windows Forms数据处理应用中,经常需要处理主从表情况。例如:SQL Server 2000的Northwind数据库Custumers表和Orders表中,一个客户对应多个定单(用关系数据库理论的ER概念模型描述,客户实体与定单实体是1:N的关系)。编程时,可以用一个DataGridView显示Customers记录(主表),另一个DataGridView显示当前Customer的定单明细(从表)。当点选主表DataGridView的Customers记录时,从表DataGridView自动过滤显示对应CustomerID的全部Orders记录(见上图)。C# 2005/2008中的BindingSource组件和DataSet/DataRelation类提供了一个简便的处理方法 立即下载

相关推荐

ASP.NET:gridview和detailsview的组合应用

可以在GridView中添加记录,点击GridView中的查看详情,可以在detailsview中显示详细信息,包括图片,可以对GridView实现增删改查

ASP.net技巧:DataList、Gridview主从表明细显示(ZZ)

<img style="margin: 0px auto; max-width: 610px !important; border-width: 0px; padding: 0px;" onclick="function onclick(){window.open("http://blog.51cto.com/viewpic.php?refimg=" + this.src)}" s

爱飞的蒲公英 1476

Dify社区版多工作空间功能解锁:源码修改与多租户架构解析

多租户架构是现代SaaS平台实现数据隔离与资源管理的核心技术,其核心原理是通过租户模型将用户、应用和数据在逻辑上隔离。在AI应用开发平台中,这种架构能有效支持多团队、多项目并行开发,确保不同业务线的数据安全与独立迭代。Dify作为开源AI应用构建平台,其底层已设计完善的多租户模型,但社区版默认限制了单用户单工作空间。本文通过精准修改两处关键代码——账户初始化逻辑与系统功能开关,释放了平台固有的多工作空间管理能力。该方案无需改动数据库结构,直接利用现有RBAC权限体系,实现了类似企业版的**多租户隔离**体验

weixin_27059669的博客 1063

使用可选的 GridView 和DetailView 控件创建主/明细报表10

简介 上一篇教程中,我们介绍了如何使用两个 Web 页面创建一个主/明细报表:从 “ 主 ”Web 页面显示供货商列表,从“ 明细” Web 页面显示选中供货商提供的那些产品的列表。这两个页面报表格式可以缩减为一个页面。本教程中 GridView 包含有每个产品的名称行和价格行,以及一个 Select 按钮。单击某个具体产品的 Select 按钮将用 DetailsView 控件在同一页面完整显...

weixin_30299709的博客 361

pentaho-kettle依赖拉取失败?试试这个Maven仓库配置的终极解决方案

本文详细解析了Pentaho Kettle依赖拉取失败的常见原因,并提供了三种Maven仓库配置方案,包括基础pom.xml配置、全局settings.xml设置以及企业级私有镜像仓库搭建。通过实战验证的方法和常见问题排查指南,帮助开发者彻底解决pentaho-kettle依赖问题,提升项目构建效率。

weixin_30275415的博客 205

IEC 62056协议栈深度拆解:从物理层握手到应用层AARQ,一次完整的DLMS通讯抓包分析

本文深入解析IEC 62056协议栈(DLMS/COSEM)的全流程通信机制,从物理层握手到应用层AARQ建立,提供详细的抓包分析和实战指南。涵盖RS-485配置、HDLC帧解析、OBIS编码解读等核心内容,并附有常见故障排查技巧,助力开发者高效实现电能表数据采集。

weixin_29182481的博客 312

devexpress gridcontrol 主从表 获取从表数据

最近公司要用到devexpress,其中的gridcontrol控件的主从表显示感觉不错。但是在获取从表数据时,遇到问题。点击从表无法获取选中行的数据。为此,查询了google,在:http://stackoverflow.com/questions/14135357/devexpress-get-the-value-from-gridview-child 找到了解决方法。如图:要获取从表的数据

guojlh的博客 1846

当几何失效时:3D激光SLAM退化场景的本质与应对策略

本文探讨了3D激光SLAM在退化场景(如长廊、隧道等)中的挑战与解决方案。文章从数学角度分析了退化原因,指出信息矩阵秩亏导致某些方向约束缺失。主流算法采用不同策略应对:LeGO-LOAM利用地面约束与解耦优化;LIO-SAM/LVI-SAM通过多传感器融合补偿;FAST-LIO系列依赖IMU短期积分。新兴的RID-LIO方案创新性地利用激光强度信息增强约束,实验显示精度提升63.59%。研究表明,针对不同退化方向需要采用特异性补偿策略,而挖掘现有传感器的潜在信息维度是提升鲁棒性的有效途径。

Studying…… 619

DetailsView 的用法(与GridView 一起使用)

特点:  一次只显示一条,而且分页也是跳到下一条数据.显示数据的格式与GridView 差不多,表格显示,很规范,很难任意布局FormView 与 DataList 差不多,可以任意布局, 可以说随心所欲吧.^_^DetailsView 主要是显示某一条记录的时候,显示详细数据.下面有几个它的知识点:1: 它的分页, 其实不是一页内多条记录的分页,而是一页内显示的就一条记录的相关字段,    确切

mndn_nana的专栏 2968

【数据集4】GSWP3数据集详解

简介GSWP3数据集

WW、forever的博客 1367

FISCO BCOS 三、多群组部署以及新节点加入群组

本章主要以星形组网和并行多组组网拓扑为例,指导您了解如下内容:了解如何使用创建多群组区块链安装包;了解创建的多群组区块链安装包目录组织形式;学习如何启动该区块链节点,并通过日志查看各群组共识状态;学习如何向各群组发送交易,并通过日志查看群组出块状态;了解群组内节点管理,包括节点入网、退网等;了解如何新建群组。

qq_63235624的博客 2920

GridView和DetailsView一起使用,DetailsView显示详情后无法删除

一、页面代码:<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div&g...

cash_cp的博客 2075

DCM07-诊断服务EcuReset ($11 )的配置和实现

文章目录1 诊断服务EcuReset ($11 )1.1 概述1.2 诊断模式声明组1.3 代码实现1.4 配置参数 传送门 ==>> AutoSAR实战系列300讲「糖果Autosar」总目录 1 诊断服务EcuReset ($11 ) 1.1 概述 该服务实现了 ECU 内的复位功能,协议的具体理论讲解请参考「FlashBootloader03【电控单元复位服务($11)】」。在接收到UDS 服务 0x11 的请求时,DCM 模块应触发 ModeDeclarationGroupPrototy

2064

关于GRIDVIEW与DETAILSVIEW的一些心得(包含DROPDOWNLIST的配合)

最近在公司做关于新闻后台系统 用到了GRIDVIEW与DETAILSVIEW之间的配合技术至于GRIDVIEW与DETAILSVIEW的相关技术我也不详细说了其他人 BLOG里面已经说的很详细了,我只说说我的心得呵呵(一个新人,实习生还没毕业,别笑话我,只是想让其他新人参与一下呵呵,希望新人以后多多来这里做客)一:在GRIDVIEW里面删除出现提示是否删除(确认提示框)解决方法: 首先在.

mndn_nana的专栏 1282

Ardupilot无人船(车)mavros自主控制

rover 4.4。

超维空间科技的博客 3230

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

选择GridView的一行,用DetailsView显示详细内容

源码位置:http://download.youkuaiyun.com/detail/weinierbian/4426673 我们先要配置好一个sqldatasource,假设为sqldatasource1,再添加一个GridView,假设为GridView1,把AutoGenerateSelectButton="True", DataSourceID="SqlDataSource1" 再添加一个sqld

闲云野鹤的专栏 5199

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

GridView 绑定 DetailsView

 GridView和DetailsView都是asp.net 2.0 的新控件本人在学习之余,总结了一下,希望能让和我一样刚学习asp.net 2.0 的菜鸟们共享一下。选择GridView的一行,用DetailsView显示详细内容我们先要配置好一个sqldatasource,假设为sqldatasource1,再添加一个GridView,假设为GridView1,把AutoGenerateSe

tianhuo_soft的专栏 1137

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

gridview 与 detailsview 进行关联

gridview detailsview 关联

开发软件 690

gridview 与 detailsview 联动 共用一个数据源 完美解决 排序分页

对于共用数据源方面,网上多是sqldatasource 这个办法最好的是再gridview_selected事件中添加下面代码 DetailsView1.PageIndex = GridView1_SelectedRow.DataItemIndex。 这个代码意思就是让DetailsView的对应的数据视图的数据行号等于GridView对应数据视图的数据行的行号。 因为两个数据控件的数据...

天天的本本 212

自学Web开发第十四天-基于VB和ASP.NET;丰富数据呈现:TreeView控件的使用及与GridView控件联动,深入研究从GridView中取数据

GridView和TreeView的相应数据操作,相互动态刷新呈现内容。深入研究从GridView中取数据

runsong911的博客 913

GridView 與 DetailsView 連動 - 繫結同一個 SqlDataSource

若在頁面中包含了一個 GridView 及 DetailsView 控制項,當 GridView 選取某一筆時,希望在 DetailsView 中顯示那一筆的詳細資料。一般的作法會讓 GridView 及 DetailsView 會繫結各別獨立的 SqlDataSoruce,當 GridView 選取時就以主鍵去對 DetailsView 的 SqlDataSource 做篩選資料的動作。 ...

weixin_33995481的博客 129

ASP.NET 2.0中GridView与DetailsView的联合使用

ASP.NET 1.x 中DataGrid的功能在ASP.NET 2.0中得到了增强。DataGrid增强的功能在2.0中分散到了GridView、DetailsView 和FormView 三个控件中。今天讨论一下GridView与DetailsView如何联合使用。 GridView和DetailsView的用法与1.x中有很大的不同,主要是2.0新增了4个DataSource控件。其

yangyibang的专栏 1146
上一篇: 如何设置DetailsView模板列里的下拉菜单
下一篇: 关于下拉菜单与GridView的联动
angleoldhen
博客等级 码龄20年 40粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值