如何在Gridview中将行合并到行中

Posted

技术标签:

【中文标题】如何在Gridview中将行合并到行中【英文标题】:How to Merge row into row in Gridview 【发布时间】:2021-11-12 08:42:13 【问题描述】:

我怎样才能实现这张表。

发件人:

TIME DETAILS1 DETAILS2 DETAILS3
8:00 test a test a1 test a2
8:00 test b test b1 test b2
8:00 test c text c1 test c2

收件人:

TIME DETAILS1 DETAILS2 DETAILS3
8:00 test a test b test c
test a1 test b1 test c1
test a2 text b2 test c2

【问题讨论】:

这是真实的数据吗?你真的有“test a1”作为字段值吗? 使用GridView 很难做到这一点;改用the ListView control 可能会更好。 非规范化数据结构增加了复杂性。 如果有 4 行,那是什么? @user8077340 如果您的问题已解决,请不要忘记将其标记为已回答。 ;) 【参考方案1】:

由于您使用的是 Microsoft Access,因此使用 SQL 更容易解决此问题,并且稍后将此查询用作 DataTable 或 ASP.NET 中类似类的数据源。

您也没有提供数据库结构,所以我认为它是一个名为 TableTime 的单个表,其中包含 IDTimeDetails1Details2Details3 列。

此解决方案基本上创建了一个由Time“分组”的排名列 (Rank)。因此,对于每个不同的Time,您将获得具有 1、2、3 等的相关行。而Rank等于1的那一行就是你要显示对应时间的那一行。 Rank 大于 1 的每一行都将 Time 保持为空,从而创建您想要的效果。

您可能需要根据您的表名和列名对其进行调整,但如果您需要帮助,请分享您的表结构。

SELECT
    IIf([Rank]=1,[TimeTable].[Time],"") AS MyTime, 
    TimeTable.Details1, 
    TimeTable.Details2, 
    TimeTable.Details3,
    DCount("ID","TimeTable","Time = #" & [TimeTable].[Time] & "# AND ID <=" & [TimeTable].[ID]) AS Rank 
FROM TimeTable;

【讨论】:

以上是关于如何在Gridview中将行合并到行中的主要内容,如果未能解决你的问题,请参考以下文章

如何获得解码/未透视行的唯一计数(列到行)

如何在单次访问报告中将 3 个连续行放入 3 个堆叠行中

GRIDVIEW多行多列合并单元格(合并列)

如何合并行中重复的单元格值?我的代码忽略了一些重复的值

如何在 asp.net c# 中将 JQuery DataTables 应用于 Gridview 以获取大数据(> 1000)?

如何在 c# ASP.net 中从 GridView 行进行单按钮照片上传