Угловые 2-НГ решетчатые жидкостные колонны

#angular #ag-grid

#угловые #ag-сетка

Вопрос:

Возможно ли вообще иметь сетку, в которой столбцы имеют ширину, явно не основанную на пикселях? Это было бы особенно полезно при использовании в сочетании с sizeColumnsToFit() .

Например, в следующей таблице визуальный дизайн может потребовать, чтобы поля ID и Name просто соответствовали содержимому, но затем Описание заполняло остальную ширину содержащего элемента.

 | ID | Name  | Description    |
|----|-------|----------------|
| 1  | Foo   | Something foo  |
| 2  | Bar   | Something bar  |
 

В настоящее время использование sizeColumnsToFit() делает их все одинаковой ширины (что-то tableWidth / 3 в этом роде).

Ответ №1:

Хотя в моем предложении вам все равно нужно указать ширину, это позволяет использовать более «динамичные» столбцы.

Сначала задайте ширину столбцов, которую вы хотите уменьшить / зафиксировать:

 var columnDefs = [
    {
        headerName: "Column 1",
        field: "col1",
        width:20
    },
 

Переход к событию gridReady для изменения размера оставшихся столбцов (ширина которых не задана):

 $scope.gridOptions = {
    columnDefs: columnDefs,
    rowData: rowData,
    onGridReady: () => {
        $scope.gridOptions.api.sizeColumnsToFit();
    }
    ...other properties
 

Ответ №2:

вы можете использовать свойство width сетки в определениях столбцов и привязать его к функции, которая может возвращать ширину в процентах.

 width: this.columnWidth(windowWidth, 10)

private columnWidth(windowWidth:number, columnSize:number) {
    return Math.floor((windowWidth * columnSize) / 100);
}