«Многоточие переполнения ячейки 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,
}