You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GridView中合并行以实现指定表格结构的转换效果

GridView表格转换实现方案

方案1:先重组数据源再绑定(推荐)

该方案逻辑清晰,后续维护成本低:

  • 第一步:按TIME字段对原始数据分组,同组数据按顺序提取字段值构造新数据源,每组对应3行新数据:
    • 新第1行:[TIME值, 组内第1条记录的DETAILS1, 组内第2条记录的DETAILS1, 组内第3条记录的DETAILS1]
    • 新第2行:["", 组内第1条记录的DETAILS2, 组内第2条记录的DETAILS2, 组内第3条记录的DETAILS2]
    • 新第3行:["", 组内第1条记录的DETAILS3, 组内第2条记录的DETAILS3, 组内第3条记录的DETAILS3]
      存在多组不同TIME数据时,按顺序拼接所有分组的行即可。
  • 第二步:实现TIME列的跨行合并,在GridView的RowDataBound事件中添加如下逻辑(C#示例):
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        // 假设TIME列为第0列
        var timeVal = DataBinder.Eval(e.Row.DataItem, "TIME")?.ToString();
        if (!string.IsNullOrEmpty(timeVal))
        {
            // 同TIME分组固定为3行时直接设置rowspan,行数不固定可提前统计分组大小动态赋值
            e.Row.Cells[0].RowSpan = 3;
        }
        else
        {
            // 空TIME的行移除对应单元格,避免出现多余边框
            e.Row.Cells.RemoveAt(0);
        }
    }
}

方案2:直接操作已绑定的GridView行

如果不希望修改原始数据源,可在GridView完成原数据绑定后,直接遍历行修改内容:

  1. 遍历所有GridView数据行,按TIME值分组,记录每组的行索引范围
  2. 对每个分组的3行数据,按转换规则重新赋值每个单元格的内容:
    • 分组第1行保留TIME值,DETAILS1/2/3列分别赋值为3条原记录的DETAILS1字段值
    • 分组第2行TIME列清空,DETAILS1/2/3列分别赋值为3条原记录的DETAILS2字段值
    • 分组第3行TIME列清空,DETAILS1/2/3列分别赋值为3条原记录的DETAILS3字段值
  3. 给分组第1行的TIME列设置RowSpan = 3,完成单元格合并

内容的提问来源于stack exchange,提问作者user8077340

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 22:54:09