Методы усечения содержимого ячейки с помощью многоточия в ag-Grid

«Многоточие переполнения ячейки ag-grid» означает усечение или добавление многоточия (…) к содержимому ячейки в библиотеке ag-Grid, когда оно превышает доступную ширину. Вот несколько способов добиться этого с примерами кода:

Метод 1: переполнение CSS и переполнение текста

.ag-cell {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

Метод 2: средство визуализации ячеек ag-Grid
Вы можете создать собственный средство визуализации ячеек в ag-Grid для обработки переполнения и применения многоточия. Вот пример использования React:

import React from 'react';
const OverflowCellRenderer = ({ value }) => {
  return (
    <div style={{ whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' }}>
      {value}
    </div>
  );
};
// Usage in ag-Grid column definition
{
  headerName: 'Column Name',
  field: 'columnName',
  cellRendererFramework: OverflowCellRenderer,
}

Метод 3: средство форматирования ячеек ag-Grid
Вы также можете использовать средство форматирования ячеек, чтобы изменить значение ячейки и применить многоточие. Вот пример использования Angular:

import { Component } from '@angular/core';
import { ICellRendererAngularComp } from 'ag-grid-angular';
@Component({
  template: `{{ value | truncateText: 50 }}`,
})
export class OverflowCellRenderer implements ICellRendererAngularComp {
  private params: any;
  public value: string;
  agInit(params: any): void {
    this.params = params;
    this.value = params.value;
  }
  refresh(): boolean {
    return false;
  }
}
// Usage in ag-Grid column definition
{
  headerName: 'Column Name',
  field: 'columnName',
  cellRendererFramework: OverflowCellRenderer,
}

В приведенном выше примере мы используем специальный канал Angular под названием truncateText, чтобы обрезать текст и добавить многоточие.

Метод 4: событие ag-Grid onCellClicked
Вы можете справиться с переполнением и многоточием при щелчке ячейки, изменив значение ячейки и обновив его усеченным текстом. Вот пример использования JavaScript:

function truncateCellText(params) {
  const cellValue = params.value;
  const cellElement = params.eGridCell;
  const maxWidth = cellElement.offsetWidth;
  if (cellElement.scrollWidth > maxWidth) {
    cellElement.textContent = cellValue;
    while (cellElement.scrollWidth > maxWidth && cellElement.textContent.length > 0) {
      cellElement.textContent = cellElement.textContent.slice(0, -1);
    }
    cellElement.textContent += '...';
    // You can also add a tooltip with the full text here
  }
}
// Usage in ag-Grid onCellClicked event
{
  onCellClicked: truncateCellText,
}