Angular ag grid滚动到新创建的项目并高亮显示该行

Angular ag grid滚动到新创建的项目并高亮显示该行,angular,ag-grid,Angular,Ag Grid,我在angular中使用ag网格进行CRUD操作应用。当我创建一个新项目时,它将在网格中更新,但一旦更新,项目滚动条应滚动到新项目位置,并且新项目行应高亮显示 专家建议 HTML <ag-grid-angular style="width: 100%; height: 100%;" class="ag-theme-balham" [defaultColDef]="defaultColDef" [columnDefs]="columnDefs" [rowSelection]="r

我在angular中使用ag网格进行CRUD操作应用。当我创建一个新项目时,它将在网格中更新,但一旦更新,项目滚动条应滚动到新项目位置,并且新项目行应高亮显示

专家建议

HTML

<ag-grid-angular style="width: 100%; height: 100%;" class="ag-theme-balham" [defaultColDef]="defaultColDef"
      [columnDefs]="columnDefs" [rowSelection]="rowSelection" [rowData]="rowData" [suppressMenuHide]="true"  [rowDragManaged]="true"
     [frameworkComponents]="frameworkComponents" (selectionChanged)="onSelectionChanged()"
      (rowClicked)='onRowClicked($event)' (gridReady)="onGridReady($event)" [gridOptions]="gridOptions">
    </ag-grid-angular>

您可以使用ag网格中提供的RowDataTransaction和ensureIndexVisible来实现这一点

  onAddNewRow(data: any) {
    if (this.gridOptions && this.gridOptions.api) {
      const addedRow = this.gridOptions.api.updateRowData({
        add: [data]
      });
      addedRow.add[0].setSelected(true);
      this.gridOptions.api.ensureIndexVisible(addedRow.add[0].rowIndex, 'bottom');
    }
  }
这里updateRowDate将返回一个结构为的对象

interface RowDataTransaction {

    // Row Nodes added
    add: RowNode[];

    // Row Nodes removed
    remove: RowNode[];

    // Row Nodes updated
    update: RowNode[];
} 

由于要添加单行,因此可以从0索引处的元素访问它。通过将新添加行的索引传递给ensureIndexVisible方法,您可以向下滚动到该特定行。

是否可以显示您的try/Tryd代码?已发布的代码。寻找,如果它是任何默认选项在ag网格或我们需要创建自定义组件?谢谢。它工作得很好,但它总是添加到网格的底部,而并没有排序顺序。我想按排序添加。可能吗?
interface RowDataTransaction {

    // Row Nodes added
    add: RowNode[];

    // Row Nodes removed
    remove: RowNode[];

    // Row Nodes updated
    update: RowNode[];
}