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

如何在AnyChart甘特图数据网格中实现行合并(rowspan)?

在AnyChart甘特图数据网格实现两行分组合并的方案

AnyChart甘特图的数据网格本质继承自表格组件,所以可以借助表格的rowspan能力,结合自定义渲染逻辑实现分组行合并效果,具体步骤如下:

  • 构造带分组标记的数据源
    给分组行添加标识字段(比如isGroup)和合并行数(rowSpan),子任务关联对应分组,示例数据结构:

    var data = anychart.data.tree([
      {
        id: "group1",
        name: "项目A",
        isGroup: true,
        rowSpan: 2
      },
      {
        id: "task1",
        parent: "group1",
        name: "任务1",
        start: "2024-01-01",
        end: "2024-01-05"
      },
      {
        id: "group2",
        name: "项目B",
        isGroup: true,
        rowSpan: 2
      },
      {
        id: "task2",
        parent: "group2",
        name: "任务2",
        start: "2024-01-06",
        end: "2024-01-10"
      }
    ], "as-tree");
    
  • 自定义列的单元格渲染器
    获取数据网格实例后,针对需要合并的列(比如名称列),在渲染器中判断分组行并设置rowspan,同时隐藏子行对应列的内容:

    var grid = chart.dataGrid();
    
    // 配置名称列的合并逻辑
    grid.column(0).width(200).title("项目/任务");
    grid.column(0).cellRenderer(function(info) {
      var rowData = info.data;
      if (rowData.get("isGroup")) {
        // 设置单元格合并行数
        info.cell.rowSpan(rowData.get("rowSpan"));
        return rowData.get("name");
      }
      // 子行该列留空,避免重复显示
      return "";
    });
    
    // 配置其他列的正常渲染(示例:时间列)
    grid.column(1).width(150).title("开始时间");
    grid.column(1).cellRenderer(function(info) {
      return info.data.get("start") || "";
    });
    
    grid.column(2).width(150).title("结束时间");
    grid.column(2).cellRenderer(function(info) {
      return info.data.get("end") || "";
    });
    
  • 优化分组行样式(可选)
    通过行格式化器给分组行添加样式,让合并效果更直观:

    grid.rowFormatter(function(row) {
      var rowData = row.data();
      if (rowData.get("isGroup")) {
        row.background("#f5f5f5");
        row.fontWeight("bold");
      }
    });
    

注意事项:分组的rowSpan值必须和对应子任务的数量匹配,否则会导致网格布局错乱;如果分组包含更多子任务,只需调整rowSpan数值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 20:24:31