【问题标题】:How to Merge row into row in Gridview如何在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 如果您的问题已解决,请不要忘记将其标记为已回答。 ;)

标签: asp.net ms-access


【解决方案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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多