Ширина, порядок, видимость и Fixed Columns
Потяните границу заголовка для изменения ширины, перетащите средний заголовок для нового порядка или скройте колонку через VGDropdown. ID и Действия фиксированы по краям: их можно растягивать, но нельзя перемещать и скрывать.
| ID | Сотрудник | Отдел | Должность | Почта | Город | Обновлено | Действия |
|---|---|---|---|---|---|---|---|
| 1 | Сотрудник 1 | Отдел 1 | Специалист | user1@example.ru | Москва | 23.09.2026 | Открыть |
| 2 | Сотрудник 2 | Отдел 2 | Специалист | user2@example.ru | Казань | 22.09.2026 | Открыть |
| 3 | Сотрудник 3 | Отдел 3 | Руководитель | user3@example.ru | Москва | 21.09.2026 | Открыть |
| 4 | Сотрудник 4 | Отдел 4 | Специалист | user4@example.ru | Казань | 20.09.2026 | Открыть |
| 5 | Сотрудник 5 | Отдел 1 | Специалист | user5@example.ru | Москва | 19.09.2026 | Открыть |
| 6 | Сотрудник 6 | Отдел 2 | Руководитель | user6@example.ru | Казань | 18.09.2026 | Открыть |
| 7 | Сотрудник 7 | Отдел 3 | Специалист | user7@example.ru | Москва | 17.09.2026 | Открыть |
| 8 | Сотрудник 8 | Отдел 4 | Специалист | user8@example.ru | Казань | 16.09.2026 | Открыть |
| 9 | Сотрудник 9 | Отдел 1 | Руководитель | user9@example.ru | Москва | 15.09.2026 | Открыть |
| 10 | Сотрудник 10 | Отдел 2 | Специалист | user10@example.ru | Казань | 14.09.2026 | Открыть |
| 11 | Сотрудник 11 | Отдел 3 | Специалист | user11@example.ru | Москва | 13.09.2026 | Открыть |
| 12 | Сотрудник 12 | Отдел 4 | Руководитель | user12@example.ru | Казань | 12.09.2026 | Открыть |
| 13 | Сотрудник 13 | Отдел 1 | Специалист | user13@example.ru | Москва | 11.09.2026 | Открыть |
| 14 | Сотрудник 14 | Отдел 2 | Специалист | user14@example.ru | Казань | 10.09.2026 | Открыть |
| 15 | Сотрудник 15 | Отдел 3 | Руководитель | user15@example.ru | Москва | 09.09.2026 | Открыть |
| 16 | Сотрудник 16 | Отдел 4 | Специалист | user16@example.ru | Казань | 08.09.2026 | Открыть |
HTML
<div id="table-columns-controls" class="vg-dropdown">
<button type="button" data-vg-toggle="dropdown" data-placement="auto">Колонки</button>
<div class="vg-dropdown-content">
<div class="vg-dropdown-container">
<label><input type="checkbox" data-vg-table-column="name" checked> Сотрудник</label>
<label><input type="checkbox" data-vg-table-column="department" checked> Отдел</label>
<button type="button" data-vg-table-columns-reset>Сбросить настройки</button>
</div>
</div>
</div>
<div class="vg-table-wrapper">
<div class="vg-table-container">
<table
id="employees-table"
class="vg-table vg-table-hovered"
data-vg-table
data-column-resize-enable="true"
data-column-resize-min-width="80"
data-column-resize-max-width="480"
data-column-reorder-enable="true"
data-column-visibility-enable="true"
data-column-visibility-controls="#table-columns-controls"
data-fixed-columns="left:id;right:actions"
style="min-width: 88rem"
>
<thead>...</thead>
<tbody>...</tbody>
</table>
</div>
</div>
JavaScript
const table = document.querySelector('#employees-table');
const instance = VGTable.getInstance(table);
instance.setColumnWidth('name', 260);
instance.moveColumn('department', 'position');
instance.setColumnVisible('email', false);
instance.resetColumns();
table.addEventListener('columnresize.vg.table', ({detail}) => console.log(detail));
table.addEventListener('columnreorder.vg.table', ({detail}) => console.log(detail));
table.addEventListener('columnvisibilitychange.vg.table', ({detail}) => console.log(detail));
CSS
/* Публичные переменные resize и drag-and-drop. */
#employees-table {
--vg-table-columns-resize-line-color: var(--vg-primary);
--vg-table-columns-drag-outline-color: var(--vg-primary);
}