AG Grid Community

35.2.1 · active · verified Sun Apr 19

AG Grid Community is a high-performance, fully-featured, and highly customizable JavaScript Data Grid library, delivering outstanding performance with no third-party dependencies. It provides the core grid functionality and integrates smoothly with all major JavaScript frameworks, including React, Angular, and Vue, often via dedicated framework-specific packages (e.g., `ag-grid-react`). The current stable version is 35.2.1, with frequent minor and patch releases, and major versions typically introduced every few months, ensuring continuous improvement and feature additions. It ships with comprehensive TypeScript types for robust development.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart initializes a basic AG Grid with defined columns and row data, enabling filtering, sorting, and pagination, using the modern Theming API.

import { createGrid, type GridOptions, type ColDef, themeQuartz } from 'ag-grid-community';

// Row Data
const rowData = [
  { make: 'Tesla', model: 'Model Y', price: 64950, electric: true },
  { make: 'Ford', model: 'F-Series', price: 33850, electric: false },
  { make: 'Toyota', model: 'Corolla', price: 29600, electric: false },
  { make: 'Porsche', model: 'Taycan', price: 81900, electric: true }
];

// Column Definitions
const colDefs: ColDef[] = [
  { field: 'make', filter: true },
  { field: 'model', filter: true },
  { field: 'price', sortable: true, valueFormatter: p => '$' + p.value.toLocaleString() },
  { field: 'electric' }
];

// Grid Options
const gridOptions: GridOptions = {
  columnDefs: colDefs,
  rowData: rowData,
  pagination: true,
  theme: themeQuartz, // Use the new Theming API
  onGridReady: (params) => {
    console.log('Grid is ready:', params.api);
    // Example: Auto-size columns after data is loaded
    params.api.sizeColumnsToFit();
  }
};

// Get a reference to the container element
const eGridDiv = document.querySelector<HTMLElement>('#myGrid');

if (eGridDiv) {
  // Create the grid
  const { api, columnApi } = createGrid(eGridDiv, gridOptions);

  // Optionally, expose API for debugging or external interaction
  (window as any).gridApi = api;
  (window as any).columnApi = columnApi;
} else {
  console.error('Grid container element #myGrid not found.');
}

// Don't forget to add a div with id='myGrid' and some height/width in your HTML
// <div id="myGrid" style="height: 400px; width: 600px;"></div>

view raw JSON →