1

我正在使用 AG Grid Angular 创建一个日志视图,我将每秒向网格添加很多条目,通常这种类型的视图在底部有最新的条目,所以如果有一个好的方法会很棒滚动将停留在底部,所以我总能看到最新的条目。如果我可以手动向上滚动并且滚动将保持在此位置,那么奖励将是。

4

1 回答 1

3

这是一种方法:

rowDataChanged在您的标记中处理:

<ag-grid-angular
  class="ag-dark"
  [rowData]="messages"
  [columnDefs]="columnDefs"
  [gridOptions]="gridOptions"
  (bodyScroll)="handleScroll($event)"
  (rowDataChanged)="handleRowDataChanged($event)">
</ag-grid-angular>

在处理程序中rowDataChanged,调用ensureVisibleIndex滚动到添加的最后一行:

  gridOptions: GridOptions = {
    suppressScrollOnNewData: true,
  }
  handleRowDataChanged(event) {
    const index = this.messages.length - 1;
    this.gridOptions.api.ensureIndexVisible(index, 'bottom');
  }

演示: https ://stackblitz.com/edit/angular-ag-grid-stuck-to-bottom

在该代码中,还有一些关于何时根据滚动位置将表格滚动到末尾或不滚动到末尾的逻辑。

于 2019-04-19T23:03:00.387 回答