GridProps
Represents the props of the KendoReact Grid component.
Definition
Package:@progress/kendo-react-grid
Properties
adaptive?
boolean
Providing different rendering of the popup element based on the screen dimensions.
adaptiveTitle?
string
Specifies the text that is rendered as title in the adaptive popup.
autoProcessData?
boolean | { filter?: boolean; search?: boolean; sort?: boolean; group?: boolean; page?: boolean }
Enables data-processing inside the GridComponent based on its state. Provides an easy, built-in way to handle data operations like sorting, filtering, grouping, and paging.
false
Defines a set of custom cell components that the Grid will render instead of the default cells.
children?
ReactNode
Determines the children nodes.
className?
string
Sets a class for the Grid DOM element.
clipboard?
boolean | ClipboardSettings
Enables clipboard copy, cut, and paste manipulations. Accepts ClipboardSettings or a boolean value.
columnMenu?
null | ComponentType<GridColumnMenuProps>
Specifies a React element that will be cloned and rendered inside the column menu of the Grid.
columnMenuIcon?
SVGIcon
Globally overrides the default (three vertical dots) column menu icon for the whole Grid. If set, the prop can be overridden on column level using the (menuIcon) property.
The collection of column states of the grid.
columnVirtualization?
boolean
Enables virtualization of the columns. If virtualization is enabled, the columns outside the view are not rendered.
contextMenu?
boolean | GridContextMenuOptions | (options: GridCellBaseOptions) => boolean | GridContextMenuOptions
Specifies the context menu settings applied to the Grid.
csv?
boolean | GridCSVExportOptions
Enables CSV export functionality when set to true or provides CSV export configuration options.
data?
null | any[] | DataResult
Sets the data of the Grid (see example). If you use paging, the data option has to contain only the items for the current page. It takes values of type null, any or DataResult
Accepts values of type null, any[], or DataResult.
dataItemKey?
string
Sets the Grid row key prop to the value of this field in the dataItem. If not set, the dataItem index will be used for the row key, which might lead to rows not updating during paging or scrolling.
Specifies the data layout mode for the Grid.
"columns": Traditional column-based table layout (default)."stacked": Card-based layout where each row displays as a vertical stack of field label/value pairs. Useful for responsive layouts and mobile devices.
The stacked mode is independent of adaptiveMode and can be used separately.
Note: Row/column spanning is not supported in stacked mode.
"columns"
The default columns state, used only for the initial load.
defaultDetailExpand?
DetailExpandDescriptor
The default detailExpand state applied to the Grid when using uncontrolled mode.
defaultEdit?
EditDescriptor
The default edit state applied to the Grid when using uncontrolled mode.
defaultFilter?
CompositeFilterDescriptor
The default filter state applied to the Grid when using uncontrolled mode.
defaultGroup?
GroupDescriptor[]
The default group state applied to the Grid when using uncontrolled mode.
defaultGroupExpand?
GroupExpandDescriptor[]
The default groupExpand state applied to the Grid when using uncontrolled mode.
The default pinnedBottomRows state applied to the Grid when using uncontrolled mode.
Requires pinnable={true}.
The default pinnedTopRows state applied to the Grid when using uncontrolled mode.
Requires pinnable={true}.
defaultSearch?
CompositeFilterDescriptor
The descriptor by which the data is searched by default. Its first FilterDescriptor populates the GridSearchBox.
defaultSelect?
SelectDescriptor
The default select state applied to the Grid when using uncontrolled mode.
defaultSkip?
number
The default skip state applied to the Grid when using uncontrolled mode.
defaultSort?
SortDescriptor[]
The default sort state applied to the Grid when using uncontrolled mode.
(see example)
defaultTake?
number
The default take state applied to the Grid when using uncontrolled mode.
detail?
null | ComponentType<GridDetailRowProps>
Specifies a React element that will be cloned and rendered inside the detail rows of the currently expanded items (see example).
detailExpand?
DetailExpandDescriptor
The descriptor by which the detail row is expanded.
detailRowHeight?
number
Defines the detail row height and forces an equal height to all detail rows.
edit?
EditDescriptor
The descriptor by which the in-edit mode of an item is defined.
editable?
boolean | GridEditableSettings
The Grid editable settings.
Sets a custom edit dialog component that the Grid will render instead of the built-in edit dialog.
filter?
CompositeFilterDescriptor
The descriptor by which
the data is filtered (more information and examples). This affects
the values and buttons in the FilterRow of the Grid.
filterable?
boolean
Enables filtering for the columns with their field option set.
The filter operators for the Grid filters.
fixedScroll?
boolean
Determines if the scroll position will be updated after a data change.
If set to true, the scroll will remain in the same position.
group?
GroupDescriptor[]
The descriptors[] by which the data will be grouped (more information and examples).
groupable?
boolean | GridGroupableSettings
Determines if grouping by dragging and dropping the column headers is allowed (more information and examples).
groupExpand?
GroupExpandDescriptor[]
The descriptor by which the group is expanded.
The descriptor by which the highlight state of an item is defined. Passing a boolean value will highlight the whole row, while passing an object will highlight individual cells by their field.
id?
string
Sets the id property of the top div element of the component.
language?
string
Sets the language of the Grid when used as a server component. Have not effect when the Grid is used as a client component.
loader?
ReactNode
A custom component that the Grid will render instead of the built-in loader.
locale?
string
Sets the locale of the Grid when used as a server component. Have not effect when the Grid is used as a client component.
lockGroups?
boolean
Defines if the group descriptor columns are locked (frozen or sticky).
Locked columns are the columns that are visible at all times while the user scrolls the component horizontally.
Defaults to false.
navigatable?
boolean | NavigatableSettings
If set to true, the user can use dedicated shortcuts to interact with the Grid.
By default, navigation is disabled and the Grid content is accessible in the normal tab sequence.
onClipboard?
(event: GridClipboardEvent) => void
Fires when clipboard support is enabled, and one of the actions (e.g., copy) is triggered.
Accepts a GridClipboardEvent object.
onColumnReorder?
(event: GridColumnReorderEvent) => void
Fires when the columns are reordered.
onColumnResize?
(event: GridColumnResizeEvent) => void
Fires when a column is resized. Only fired when the Grid is run as a client component.
onColumnsStateChange?
(event: GridColumnsStateChangeEvent) => void
Fires when the columns state of the Grid is changed.
onContextMenu?
(event: GridContextMenuEvent) => void
The event that is fired when the ContextMenu is activated. Only fired when the Grid is run as a client component.
onContextMenuItemClick?
(event: GridContextMenuItemClickEvent) => void
The event that is fired when the ContextMenu item is clicked. Only fired when the Grid is run as a client component.
Fires when the user clicks the CSV export button. Allows custom data transformation before export.
any[]
onDataStateChange?
(event: GridDataStateChangeEvent) => void
Fires when the data state of the Grid is changed (more information and example).
onDetailExpandChange?
(event: GridDetailExpandChangeEvent) => void
Fires when the user expands or collapses a detail row.
onEditChange?
(event: GridEditChangeEvent) => void
Fires when the user enters or exits an in-edit mode of a row or cell.
onFilterChange?
(event: GridFilterChangeEvent) => void
Fires when the Grid filter is modified through the UI. You must handle the event and filter the data.
onGroupChange?
(event: GridGroupChangeEvent) => void
Fires when the grouping of the Grid is changed. You have to handle the event yourself and group the data (more information and examples).
onGroupExpandChange?
(event: GridGroupExpandChangeEvent) => void
Fires when the user expands or collapses a group.
onHeaderSelectionChange?
(event: GridHeaderSelectionChangeEvent) => void
Fires when the user clicks the checkbox of a column header whose type is set to checkbox.
onHighlightChange?
(event: GridHighlightChangeEvent) => void
Fires when the Grid highlight is modified. You must handle the event and filter the data.
onItemChange?
(event: GridItemChangeEvent) => void
Fires when the user changes the values of the item.
onKeyDown?
(event: GridKeyDownEvent) => void
Fires when the user press keyboard key. Only fired when the Grid is run as a client component.
onNavigationAction?
(event: GridNavigationActionEvent) => void
Fires when Grid keyboard navigation position is changed. Only fired when the Grid is run as a client component.
onPageChange?
(event: GridPageChangeEvent) => void
Fires when the page of the Grid is changed.
Fires when the user clicks the PDF export button.
Promise<void>
onRowClick?
(event: GridRowClickEvent) => void
Fires when the user clicks a row.
onRowDoubleClick?
(event: GridRowDoubleClickEvent) => void
Fires when the user double clicks a row.
onRowPinChange?
(event: GridRowPinChangeEvent) => void
Fires when a row is pinned, unpinned, or moved between pinned zones.
Requires pinnable={true}.
onRowReorder?
(event: GridRowReorderEvent) => void
Fires when the user reorders a row.
Fires when Grid is scrolled. Only fired when the Grid is run as a client component.
onSearchChange?
(event: GridSearchChangeEvent) => void
Fires when the search value of the GridSearchBox is changed.
onSelectionChange?
(event: GridSelectionChangeEvent) => void
Fires when the user tries to select or deselect a row or cell.
onSortChange?
(event: GridSortChangeEvent) => void
Fires when the sorting of the Grid is changed. You must handle the event and sort the data. (see example)
pageable?
boolean | GridPagerSettings
Configures the pager of the Grid. Accepts GridPagerSettings or a boolean value.(see example)
The available options are:
buttonCount: Number—Sets the maximum numeric buttons count before the buttons are collapsed.info: Boolean—Toggles the information about the current page and the total number of records.type: PagerType—Accepts thenumeric(buttons with numbers) andinput(input for typing the page number) values.pageSizes: BooleanorArray<number>—Shows a menu for selecting the page size.pageSizeValue: String or Number—Sets the selected value of the page size Dropdownlist. It is useful when the selected value could also be a string not only a number.previousNext: Boolean—Toggles the Previous and Next buttons.navigatable: Boolean—Defines if the pager will be navigatable.responsive: Boolean—Defines if the pager will be responsive. If true, hides the tools that do not fit to the available space.adaptive: Boolean—Providing different rendering of the page sizes select element based on the screen dimensions.adaptiveTitle: String—Specifies the text that is rendered as title in the adaptive page sizes select element.
pager?
null | ComponentType<PagerProps>
The pager component that the Grid will render instead of the built-in pager. It takes values of type null and ComponentType<PagerProps>
pageSize?
number
Defines the page size used by the Grid pager. Required for paging functionality.
When set to true the Grid pdf export will be enabled. If set to an object, the Grid will use the provided settings to export the PDF.
pinnable?
boolean
Enables the row pinning feature.
When false or omitted, the row pinning feature is inactive.
pinnedBottomRows?
any[]
The array of data items pinned to the bottom of the Grid.
Pinned rows remain visible while the body scrolls and are immune to filtering and pagination.
Requires pinnable={true}.
pinnedTopRows?
any[]
The array of data items pinned to the top of the Grid.
Pinned rows remain visible while the body scrolls and are immune to filtering and pagination.
Requires pinnable={true}.
reorderable?
boolean
If set to true, the user can reorder columns by dragging their header cells (see example).
resizable?
boolean
If set to true, the user can resize columns by dragging the edges (resize handles) of their header cells (see example).
rowHeight?
number
Defines the row height and forces an equal height to all rows (see example).
rowReorderable?
boolean | GridRowReorderSettings
Defines the row reorder settings.
rowSpannable?
boolean | GridRowSpannableSettings
Enables the built-in row span feature of the Grid.
Defines the scroll mode that is used by the Grid (see example).
The available options are:
none—Renders no scrollbar.scrollable—This is the default scroll mode. It requires the setting of theheightoption.virtual—Displays no pager and renders a portion of the data (optimized rendering) while the user is scrolling the content.
search?
CompositeFilterDescriptor
The descriptor by which the data is searched. Its first FilterDescriptor populates the GridSearchBox.
searchFields?
string | SearchField[]
Defines the fields of the data that are filtered by the GridSearchBox.
select?
SelectDescriptor
The descriptor by which the selected state of an item is defined. Passing a boolean value will select the whole row, while passing an array of strings will select individual.
selectable?
boolean | GridSelectableSettings
The Grid selectable settings.
showLoader?
boolean
Specifies whether the loader of the Grid will be displayed.
size?
"small" | "medium"
Configures the size of the Grid.
The available options are:
- small
- medium
undefined (theme-controlled)
skip?
number
Defines the number of records that will be skipped by the pager (see example). Required by the paging functionality.
sort?
SortDescriptor[]
The (descriptors) by which the data is sorted. Applies the sorting styles and buttons to the affected columns.
sortable?
SortSettings
Enables sorting for the columns with their field option set.
(see example)
Configuration for the stacked layout mode.
Only applicable when dataLayoutMode="stacked".
The cols property defines how stacked cells are arranged:
- As a number: Creates that many equal-width columns
- As an array: The length defines column count, values define widths
style?
CSSProperties
Represents the style HTML attribute.
take?
number
Alias for the pageSize property. If take is set, pageSize will be ignored.
total?
number
Defines the total number of data items in all pages. Required for paging functionality.
Enables Web MCP tools for browser-native AI agent interaction (Chrome 146+).
When enabled, the Grid registers tools that AI agents can discover and invoke.
Data reading tools (get_data, get_state) are always registered.
Additional tools are registered based on Grid props:
sortable→sortandclear_sorttools.
Pass true for defaults or an object for fine-grained control.
AI agents are multilingual — dataName accepts any language.