Ag-grid中的最高行号

Highest row number in Ag-grid

我正在尝试查找 Ag-grid 中的最高行号。每当在数据库中插入新行并显示在网格上时,我必须用某种颜色突出显示最新的行。我已经在提供的 link 中看到一些代码,其中可以根据列中的某个值突出显示一行,但我试图确定该值是否是最高行号。

如有任何帮助,我们将不胜感激。 谢谢。

如果您要查找编号的计数。 of rows 或者最后一行的行节点对象,可以通过gridAPI对象获取。这是指南:https://www.ag-grid.com/javascript-data-grid/grid-api/

希望您已经通过 (gridReady)

存储了网格 API 对象
<ag-grid-angular
   (gridReady)="functionToStoreGridAPI($event)"
   // ...
/>

你需要有一个函数来获取“元素最大值”。想象一下像

这样的行数据
  rowData = [
    { make: 'Toyota', model: 'Celica', price: 35000 },
    { make: 'Ford', model: 'Mondeo', price: 32000 },
    { make: 'Porsche', model: 'Boxter', price: 72000 }
  ];

所以你有

  @ViewChild('agGrid',{static:true}) agGrid: AgGridAngular; //<--to get the grid
  maximum: any; //<--here we store the greater element

  //your function getGreaterElement
  getGreaterElement()
  {
      //get the element with bigger price
      this.maximum=this.rowData.reduce((a,b)=>+b.price>+a.price?b:a)
      if (this.agGrid.api) //if exist the api
        this.agGrid.api.redrawRows();  //redraw the grid
  }

你添加 class 的函数(记住你需要在 styles.css 中添加 class,而不是在组件中)

  getRowClass = params => {
    return params.data === this.maximum ? 'red' : null;
  };

.css喜欢

.red{
  background-color:red!important;
  color:white!important;
}

.red .ag-input-field-input.ag-text-field-input{
  color:#181d1f!important 
}

现在您需要在调用函数 getGreaterElement 时考虑在内

  //in the ngOnInit
  ngOnInit() {
    this.getGreaterElement();
  }

  //when stop edit the cell "price"
  cellEditingStopped(event: any) {
    if (event.column.colId == 'price') this.getGreaterElement();
  }

  //this is a function to add a row
  addRow() {
    const index = this.rowData.length;
    this.rowData.push({ make: '', model: '', price: 0 });
    this.agGrid.api.applyTransaction({
      add: [this.rowData[index]]
    });
    this.agGrid.api.startEditingCell({
      rowIndex: index,
      colKey: 'make'
    });
  }

还有.html

<button (click)="addRow()">add</button>
<ag-grid-angular  #agGrid
    style="width: 500px; height: 200px;" 
    class="ag-theme-alpine"
    [rowData]="rowData" 
    [columnDefs]="columnDefs"
    [defaultColDef]="defaultColDef"
    [getRowClass]="getRowClass"
    (cellEditingStopped)="cellEditingStopped($event)"
    >
</ag-grid-angular>

您可以在this stackblitz

中看到