Virtual scrollingWeb Worker offloadColumnar encodingServer-side dataPaginationInfinite scrollTransactionsAsync transactionsCell span / mergeSortingAutomatic columnsCustom sort orderResizingReorderingPinningAuto-size & fitVisibility & chooserBands (multi-level headers)Filter rowHeader filter popupQuick searchFilter panel barExternal filterMulti filterFilter builderGrouping (one level)Group panelMulti-level groupingGroup summariesMaster-detailTree dataFooter column totalsTotals row placementCustom aggregationSelection statisticsRow selectionFocused rowDeferred selectionRange selectionCell focus & keyboardCopyFill handleCut & pasteCell editingBatch editingRow editingForm & popup editingValidationPermissionsCustom editors & lookupsCRUD handlersUndo / redoCSV exportExcel exportPDF exportStyled exportImport wizardThemes & palettesDensityLocalizationTooltipsRow numbersCell flashPinned rowsRow drag & dropSparklinesCell notesPrint layoutAligned gridsLoading & empty overlaysStatus barSide bar & tool panelsChart data hookChart panelCross-filter & zoomChart exportEventsImperative APISaved viewsContext menusSSR & bundlers
Virtual scrolling
CommunityReactBuilt for ReactA million rows at 60fps — only the visible window is in the DOM.
Try it: One million rows. Drag the scrollbar anywhere — the row numbers show where you are, and the DOM never holds more than about thirty rows.
Loading DataGrid…