【问题标题】:ag-grid angular wrong row order after initialization初始化后的 ag-grid 角度错误的行顺序
【发布时间】:2017-07-04 20:06:38
【问题描述】:

我在 angular 的 ag-grid 中遇到了奇怪的行为,不知道我做错了什么还是一个错误。

初始化 agggrid 后
this.gridOptions = {
  enableSorting: true,
  rowHeight: 50,
  suppressDragLeaveHidesColumns: true,
  enableColResize: true,
  domLayout: 'autoHeight',
  rowSelection: 'single',
};

  <ag-grid-angular
    #agGrid
    [rowData]="articleArray"
    [gridOptions]="gridOptions"
    (cellClicked)="showDetails($event)"
    (gridReady)="onGridReady()"
    (modelUpdated)="onModelUpdated()"
    (gridSizeChanged)="sizeToFit()"
  ></ag-grid-angular>

并通过

获得网格中行的结果顺序
  updateArticleOrder() {
    const result: string[] = [];
    this.gridOptions.api.forEachNodeAfterFilterAndSort(rowNode => result.push(rowNode.data.id));
    this.articleOrderChanged$.emit(result);
  }

我注意到顺序与[rowData]="articleArray" 中使用的原始输入不同。准确地说,11 个项目已移动到网格的底部,并且网格从原始索引 11 开始。为什么会这样,我该如何避免呢?排序后,updateArticleOrder()onModelUpdated() 内部被调用,我再次得到正确的顺序,单击第一行时显示索引 0。

[EDIT] 我注意到只有在初始化网格时才会出现这个问题。当网格已经可见后我的 articleArray 更新时,this.gridOptions.api.forEachNodeAfterFilterAndSort 会以正确的顺序为我提供新项目。

【问题讨论】:

    标签: angular ag-grid


    【解决方案1】:

    这可能是使用 [domLayout]="'autoHeight'" 的错误。作为临时解决方案,尝试将 [rowBuffer] 设置为某个较高的数字,例如 [rowBuffer]="10000"

    【讨论】:

    • 就是这样!非常感谢。
    • rowBuffer 应该是一个数字而不是一个字符串
    猜你喜欢
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 2020-08-13
    • 2020-01-03
    • 1970-01-01
    • 2016-05-17
    • 2018-03-10
    相关资源
    最近更新 更多