What is ag-grid-community?
ag-grid-community is a feature-rich data grid designed for the major JavaScript frameworks. It provides a highly customizable and performant grid component that can handle large datasets and complex data operations.
What are ag-grid-community's main functionalities?
Basic Grid Setup
This code sets up a basic grid with three columns (Make, Model, Price) and three rows of data. It demonstrates how to define column definitions and row data for the grid.
const gridOptions = {
columnDefs: [
{ headerName: 'Make', field: 'make' },
{ headerName: 'Model', field: 'model' },
{ headerName: 'Price', field: 'price' }
],
rowData: [
{ make: 'Toyota', model: 'Celica', price: 35000 },
{ make: 'Ford', model: 'Mondeo', price: 32000 },
{ make: 'Porsche', model: 'Boxster', price: 72000 }
]
};
// Assuming you have a div with id 'myGrid'
new agGrid.Grid(document.getElementById('myGrid'), gridOptions);
Sorting
This code adds sorting functionality to the grid. By setting the 'sortable' property to true in the column definitions, users can sort the data by clicking on the column headers.
const gridOptions = {
columnDefs: [
{ headerName: 'Make', field: 'make', sortable: true },
{ headerName: 'Model', field: 'model', sortable: true },
{ headerName: 'Price', field: 'price', sortable: true }
],
rowData: [
{ make: 'Toyota', model: 'Celica', price: 35000 },
{ make: 'Ford', model: 'Mondeo', price: 32000 },
{ make: 'Porsche', model: 'Boxster', price: 72000 }
]
};
new agGrid.Grid(document.getElementById('myGrid'), gridOptions);
Filtering
This code adds filtering functionality to the grid. By setting the 'filter' property to true in the column definitions, users can filter the data using the filter input boxes that appear in the column headers.
const gridOptions = {
columnDefs: [
{ headerName: 'Make', field: 'make', filter: true },
{ headerName: 'Model', field: 'model', filter: true },
{ headerName: 'Price', field: 'price', filter: true }
],
rowData: [
{ make: 'Toyota', model: 'Celica', price: 35000 },
{ make: 'Ford', model: 'Mondeo', price: 32000 },
{ make: 'Porsche', model: 'Boxster', price: 72000 }
]
};
new agGrid.Grid(document.getElementById('myGrid'), gridOptions);
Pagination
This code adds pagination to the grid. By setting the 'pagination' property to true and defining 'paginationPageSize', the grid will display a limited number of rows per page and provide pagination controls.
const gridOptions = {
pagination: true,
paginationPageSize: 10,
columnDefs: [
{ headerName: 'Make', field: 'make' },
{ headerName: 'Model', field: 'model' },
{ headerName: 'Price', field: 'price' }
],
rowData: [
{ make: 'Toyota', model: 'Celica', price: 35000 },
{ make: 'Ford', model: 'Mondeo', price: 32000 },
{ make: 'Porsche', model: 'Boxster', price: 72000 },
// Add more rows as needed
]
};
new agGrid.Grid(document.getElementById('myGrid'), gridOptions);
Other packages similar to ag-grid-community
react-table
react-table is a lightweight, fast, and extendable data grid built for React. It focuses on providing a simple and flexible API for building tables. Compared to ag-grid-community, react-table is more lightweight and easier to customize but may lack some of the advanced features and performance optimizations.
handsontable
handsontable is a JavaScript/HTML5 data grid component with Excel-like appearance and behavior. It is highly customizable and supports a wide range of features including data validation, sorting, filtering, and more. Compared to ag-grid-community, handsontable offers a more Excel-like experience but may have a steeper learning curve.
slickgrid
slickgrid is a JavaScript grid/spreadsheet component that is highly performant and capable of handling large datasets. It offers a range of features including virtual scrolling, column resizing, and more. Compared to ag-grid-community, slickgrid is known for its performance with large datasets but may require more effort to integrate and customize.
Module | Info |
---|
ag-grid-community |
|
ag-grid-enterprise | |
AG Grid
AG Grid is a fully-featured and highly customizable JavaScript data grid.
It delivers outstanding performance, has no third-party dependencies and integrates smoothly with all major JavaScript frameworks.
Here's how our grid looks with multiple filters and grouping enabled:
Features
In addition to the standard set of features you'd expect from any grid:
- Column Interactions (resize, reorder, and pin columns)
- Pagination
- Sorting
- Row Selection
Here are some of the features that make AG Grid stand out:
- Grouping / Aggregation *
- Accessibility support
- Custom Filtering
- In-place Cell Editing
- Records Lazy Loading *
- Server-Side Records Operations *
- Live Stream Updates
- Hierarchical Data Support & Tree View *
- Customizable Appearance
- Customizable Cell Contents
- State Persistence
- Keyboard Navigation
- Data Export to CSV
- Data Export to Excel *
- Excel-like Pivoting *
- Row Reordering
- Copy / Paste
- Column Spanning
- Pinned Rows
- Full Width Rows
- Integrated Charting
- Sparklines
* The features marked with an asterisk are available in the Enterprise version only.
Check out the developer documentation for a complete list of features or visit our official docs for tutorials and feature demos.
Looking for a framework specific solution?
Getting started
Install dependencies
$ npm install --save ag-grid-community
Add a placeholder to HTML
<div id="myGrid" style="height: 150px; width: 600px" class="ag-theme-alpine"></div>
Import the grid and styles
import { Grid } from 'ag-grid-community';
import 'ag-grid-community/styles//ag-grid.css';
import 'ag-grid-community/styles//ag-theme-alpine.css';
Set configuration
var gridOptions = {
columnDefs: [
{ headerName: 'Make', field: 'make' },
{ headerName: 'Model', field: 'model' },
{ headerName: 'Price', field: 'price' }
],
rowData: [
{ make: 'Toyota', model: 'Celica', price: 35000 },
{ make: 'Ford', model: 'Mondeo', price: 32000 },
{ make: 'Porsche', model: 'Boxster', price: 72000 }
]
};
Initialise the grid
var eGridDiv = document.querySelector('#myGrid');
new Grid(eGridDiv, this.gridOptions);
For more information on how to integrate the grid into your project see Building AG Grid Applications.
Issue Reporting
If you have found a bug, please report it in this repository's issues section. If you're using the Enterprise version, please use the private ticketing system to do that.
Asking Questions
Look for similar problems on StackOverflow using the ag-grid
tag. If nothing seems related, post a new message there. Please do not use GitHub issues to ask questions.
Contributing
AG Grid is developed by a team of co-located developers in London. If you want to join the team send your application to info@ag-grid.com.
License
This project is licensed under the MIT license. See the LICENSE file for more info.