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 editingPopup 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
Server-side data
EnterpriseFiltering, sorting, paging, distinct values and totals run on your server.
Try it: Same component, different source: every filter and sort here is a request, not a client-side pass.
Enterprise feature — your app needs its own licence key. See Pricing.
Loading DataGrid…