Sorting
Sort rows with sortable columns and the grid.sort API.
Enable sorting on columns, then use header interactions or grid.sort.
Column Setup
const columns: ColumnDef[] = [ { field: 'name', header: 'Name', width: 220, sortable: true }, { field: 'age', header: 'Age', width: 100, sortable: true }, { field: 'email', header: 'Email', width: 260, sortable: true },];API
grid.sort.toggle(0);grid.sort.apply([{ column: 1, direction: 'desc' }]);grid.sort.setState([ { column: 1, direction: 'asc', sortIndex: 0 }, { column: 0, direction: 'desc', sortIndex: 1 },]);
const state = grid.sort.getState();grid.sort.clear();Events
grid.on('sort:beforeSort', (event) => { console.log(event.sortState);});
grid.on('sort:change', ({ sortState, previousSortState }) => { console.log({ sortState, previousSortState });});
grid.on('sort:afterSort', ({ rowsAffected }) => { console.log(rowsAffected);});Backend Sorting
const grid = new Grid(container, { columns, rowCount: 100000, colCount: columns.length, rowHeight: 36, colWidth: columns.map((column) => column.width ?? 140), dataMode: 'backend', onDataRequest: async (request) => fetchRows(request),}); ℹ Info
In backend mode, sort state is included in the canonical request query passed to onDataRequest.