滚动时跨行无法正常工作

Row spanning not working properly when you scroll

我对网站给出的例子做了一些修改:

ag-Grid row spanning example

具体来说,我添加了以下内容:

} else if (athlete === "Jenny Thompson") {
        return 500;
...

cellClassRules: { "cell-span": "value==='Jenny Thompson' || value==='Aleksey Nemov' || value==='Ryan Lochte'" },

乍一看,'Jenny Thompson' 似乎跨度正确。但是,当您再滚动一点时,跨越就会停止。但是,如果您单击 'Jenny Thompson' 并滚动,则跨越会继续到第 500 个单元格。

问题是当您向下滚动时,之前的行被删除并被新行替换。因此,删除了 rowSpan。我为此做了一个解决方法。

在 rowData 中,我添加了这些新属性:rowSpan-<index>grpSpan-<index>rowSpan-<index> 将指示单元格跨越多少行。我必须计算主组单元格下其他行的行跨度。例如,我的单元格跨越 50 行。因此,它的行跨度为 50。它下面的单元格的行跨度为 49,下一个单元格的行跨度为 48,依此类推。这样当上面的行从视口中移除时,新单元格仍然知道它需要跨越多少行。这些其他单元格的行跨度小于主单元格(本例中为 50),将有另一个 属性 grpSpan-<index>。这只是为了确定他们是主要群体的一部分。顺便说一下,index 是列索引。

然后我将下面的属性添加到columnDefs

    column['rowSpan'] = (params) => {
      return params.data[`rowSpan-<index>`] ? params.data[`rowSpan-<index>`] : 1;
    };
    column['cellClassRules'] = {
      'cell-span': (params) => {
        return params.data[`rowSpan-<index>`] ? true : false;
      },
      'cell-group': 'true',
      'cont-span': (params) => {
        return params.data[`grpSpan-<index>`] ? true : false;
      }
    };

在css中:

.cell-span {
  border-bottom: 1px solid #d9dcde !important;
}

.cell-group {
  background: white;
}

.cont-span {
  color: white;
}

我希望这能帮助其他人解决这个问题。