A factual, side-by-side comparison for Angular apps moving off AG Grid's Community
or Enterprise tier onto the MIT-licensed @inandu-solutions/grid-angular. Feature
equivalents first, then what's genuinely different, so there are no surprises after you switch.
| Concept | AG Grid | inandu-grid |
|---|---|---|
| Install | ag-grid-angular (+ ag-grid-community/ag-grid-enterprise) | ng add @inandu-solutions/grid-angular |
| Component | <ag-grid-angular> | <inandu-grid> + <inandu-column> |
| Row data | [rowData] | [data] |
| Column definitions | [columnDefs] array with field/headerName | one <inandu-column field title> per column, declared in the template |
| Cell value formatting | valueFormatter | type + format on <inandu-column>, or a custom cell template |
AG Grid's config-object style:
columnDefs = [
{ field: 'name', headerName: 'Name', sortable: true },
{ field: 'age', headerName: 'Age', sortable: true, filter: 'agNumberColumnFilter' },
];
rowData = people;
becomes inandu-grid's declarative template style:
<inandu-grid [data]="people" filter="true">
<inandu-column field="name" title="Name" sortable="true" />
<inandu-column field="age" title="Age" type="number" sortable="true" filter="yes" />
</inandu-grid>
| Feature | AG Grid | inandu-grid |
|---|---|---|
| Sorting | sortable: true per column def | sortable="true" per <inandu-column>, shift-click for multi-sort |
| Per-column filter | filter: 'agTextColumnFilter' etc. | filter="yes" — type-aware popup, no per-type filter class to pick |
| Free-text / quick filter | [quickFilterText] | filter="true" on <inandu-grid> |
| Pagination | [pagination]="true" + [paginationPageSize] | [paging]="{ pageSize: 25 }" |
| Row grouping | rowGroup: true (Enterprise) | groupable="true" — free |
| Aggregates | aggFunc: 'sum' (Enterprise) | showTotals + aggregate="sum" — free |
| Cell range selection | enableRangeSelection (Enterprise) | cellRangeSelection (+ multiRange) — free |
| Excel export | api.exportDataAsExcel() (Enterprise) | free, SpreadsheetML .xls — a styled binary .xlsx is a @inandu-solutions/grid-pro feature |
| CSV export | api.exportDataAsCsv() | free, built in |
| Row selection | rowSelection: 'multiple' | selectable="true" |
| Inline editing | editable: true per column def | editable="true" per <inandu-column>, plus required/min/max/pattern/[validator] |
| Column pinning | pinned: 'left' | sticky="true" (or "right") |
| Row drag reorder | rowDragManaged | rowReorder |
| Virtual scroll | built in (row model default) | virtualScroll, opt-in |
| Server-side rows | Server-Side Row Model (Enterprise) | serverSide + outputs — free; pairs with the .NET/EF Core companion for ASP.NET Core APIs |
| Tree data | Tree Data (Enterprise) | treeChildrenKey — free |
inandu-grid is deliberately not a kitchen sink. Being honest about the gaps up front is cheaper than finding them mid-migration:
.xlsx (styled, binary) is a paid @inandu-solutions/grid-pro feature, same as AG Grid Enterprise's Excel export — the free tier in both projects covers CSV, and inandu-grid's free tier additionally covers a plain .xls.ag-grid-angular/ag-grid-community/ag-grid-enterprise with ng add @inandu-solutions/grid-angular.columnDefs entry into an <inandu-column> element using the table above.Full API reference, every input/output, and runnable examples: see the user manual. Questions or migration issues: open an issue.