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
Popup editing
EnterpriseReactBuilt for ReactEdit the record in a dialog over the grid.
Try it: The same record, but in a dialog over the grid — the rows stay where they are.
Enterprise feature — your app needs its own licence key. See Pricing.
Loading DataGrid…