New to Kendo UI for VueStart a free 30-day trial

GridProps

Updated on Feb 10, 2026

Represents the props of the native Vue Grid component by Kendo UI.

NameTypeDefaultDescription

allGroupedItems?

DataResult

Deprecated. Not needed any more.

alternatePerGroup?

boolean

When set to true it sets the alternating of the rows per groups so each group could start with the same color row. There is a known limitation when virtual scrolling with groups and alternatePerGroup set to true- there may be a slight flicker of the alternating rows in groups with larger amount of items - in this case we would rather recommend using rowTemplates and set the row alternating based on the data or dataItems.

autoProcessData?

boolean | { filter?: boolean; group?: boolean; page?: boolean; search?: boolean; sort?: boolean; }

false

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.

jsx
<Grid
  :autoProcessData="{
    filter: true,
    search: true,
    sort: true,
    group: true,
    page: true
  }}"
/>

cellRender?

string | boolean | (h: any, defaultRendering: any, props: GridCellProps, listeners: any) => any

Defines the custom rendering of the cell. Accepts a Vue component, a render function, or a slot name. (see example).

collapsedGroups?

any[][]

Deprecated Use 'groupExpand' instead.

Passes the collection of all collapsed groups for every grouped level.

columnMenu?

any

Defines if the column menu will be shown for the column. Accepts Boolean, a Vue component, a render function, or a slot name

columnMenuAnimate?

boolean | PopupAnimation

Controls the ColumnMenu animation. By default, the opening and closing animations are enabled.

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.

columns?

GridColumnProps[]

Sets the properties of the columns that are used by the Grid.

columnsState?

GridColumnState[]

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.

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 row not updated during paging or scrolling.

dataItems?

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.

defaultColumnsState?

GridColumnState[]

The default collection of column states of the grid.

defaultDetailExpand?

DetailExpandDescriptor

The default detailExpand state applied to the Grid when using uncontrolled mode.

jsx
<Grid :default-detail-expand="{ 2: true, 4: true }" />

defaultFilter?

CompositeFilterDescriptor

The default descriptor by which the data is filtered (more information and examples).

defaultGroup?

GroupDescriptor[]

The default group state applied to the Grid when using uncontrolled mode.

jsx
<Grid defaultGroup={[{ field: 'CategoryName' }]} />

defaultGroupExpand?

GroupExpandDescriptor[]

The default groupExpand state applied to the Grid when using uncontrolled mode.

jsx
<Grid :default-group-expand="[{ field: 'CategoryName', expanded: true }]" />

defaultSearch?

CompositeFilterDescriptor

The descriptor by which the data is searched by default. Its first FilterDescriptor populates the GridSearchBox.

vue
<Grid :default-search="{ logic: 'or', filters: [{ field: 'category', operator: 'eq', value: 'electronics' }] }" />

defaultSkip?

number

The default skip state applied to the Grid when using uncontrolled mode.

vue
<Grid :default-skip="10" />

defaultSort?

SortDescriptor[]

The descriptors by which the data is sorted. Applies the sorting styles and buttons to the affected columns.

defaultTake?

number

The default take state applied to the Grid when using uncontrolled mode.

jsx
<Grid :default-take="20" />

detail?

any

Specifies a custom rendering that will be cloned and rendered inside the detail rows of the currently expanded items (see example. Accepts a Vue component, a render function, or a slot name. The expand will be active if the dataItemKey is set.

detailExpand?

DetailExpandDescriptor

The descriptor by which the detail rows are expanded.

jsx
<Grid :detail-expand="{ 1: true, 3: true }" />

detailRowHeight?

number

Defines the height of the detail row and forces an equal height to all detail rows

editField?

string

Specifies the name of the field which will provide a Boolean representation of the edit state of the current item (more information and examples).

expandColumn?

GridColumnProps

Defines the GridColumnProps of the expand column.

expandField?

string

obsolete Will be removed in the next major release. Set dataItemKey property instead.

Specifies the name of the field which will provide a Boolean representation of the expanded state of the item (see example.

filter?

CompositeFilterDescriptor

The descriptor by which the data is filtered (more information and examples). Affects the values and buttons in the FilterRow of the Grid.

filterable?

boolean

Enables the filtering of the columns with their field option set (more information and examples).

filterCellRender?

any

Defines the custom rendering of the filter cell. Accepts a Vue component, a render function, or a slot name.

filterOperators?

GridFilterOperators

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.

jsx
<Grid :group-expand="[{ field: 'CategoryName', expanded: true }]" />

headerCellRender?

any

Defines the custom rendering of the header cell. Accepts a Vue component, a render function, or a slot name.

highlight?

{[id: string]: boolean | {[id: string]: boolean}}

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.

jsx
<Grid :id="'custom-grid-id' />

loader?

string | Object | Function

The boolean option is Deprecated. Use 'showLoader' instead.

Defines if the loader will be shown. Accepts a slot name, a render function, or a Vue component.

boolean

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.

onCancel?

(event: GridCancelEvent) => void

Fires when the user triggers a canceling operation from a cell.

onCellclick?

(event: any) => void

Fires when the user clicks a cell.

onColumnreorder?

(event: GridColumnReorderEvent) => void

Fires when columns are reordered.

onColumnresize?

(event: GridColumnResizeEvent) => void

Fires when a column is resized

onDatastatechange?

(event: GridDataStateChangeEvent) => void

Fires when the data state of the Grid is changed.

onDetailexpandchange?

(event: GridDetailExpandChangeEvent) => void

Fires when the user expands or collapses a detail row.

onEdit?

(event: GridEditEvent) => void

Fires when the user triggers an edit operation from a cell.

onExpandchange?

(event: GridExpandChangeEvent) => void

Deprecated. Use 'onDetailexpandchange' or 'onGroupexpandchange' instead.

onFilterchange?

(event: GridFilterChangeEvent) => void

Fires when the Grid filter is modified through the UI (more information and examples). You have to handle the event yourself 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 field matches selectedField. (see example).

onItemchange?

(event: GridItemChangeEvent) => void

Fires when the user changes the values of the item. The event is not debounced and fires on every onChange event of the input in the current EditCell. (more information and examples).

onKeydown?

(event: GridKeyDownEvent) => void

Fires when the user press keyboard key.

onNavigationaction?

(event: GridNavigationActionEvent) => void

Fires when Grid keyboard navigation position is changed.

onPagechange?

(event: GridPageChangeEvent) => void

Fires when the page of the Grid is changed (see example). You have to handle the event yourself and page the data.

onRemove?

(event: GridRemoveEvent) => void

Fires when the user triggers a removal operation from a cell.

onRowclick?

(event: GridRowClickEvent) => void

Fires when the user clicks a row.

onRowdblclick?

(event: GridRowClickEvent) => void

Fires when the user double clicks a row.

onSave?

(event: GridSaveEvent) => void

Fires when the user triggers a saving operation from a cell.

onScroll?

(event: any) => void

Fires when Grid is scrolled.

onSearchchange?

(event: GridSearchChangeEvent) => void

Fires when the search descriptor of the Grid is changed. You have to handle the event yourself and search the data.

onSelectionchange?

(event: GridSelectionChangeEvent) => void

Fires when the user tries to select or deselect a row (see example).

onSortchange?

(event: GridSortChangeEvent) => void

Fires when the sorting of the Grid is changed (see example). You have to handle the event yourself and sort the data.

pageable?

any

Configures the pager of the Grid (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 the numeric (buttons with numbers)

and input (input for typing the page number) values.

  • pageSizes: Boolean or Array<number>—Shows a menu for selecting the page size.
  • previousNext: Boolean—Toggles the Previous and Next buttons.

pager?

string | boolean | Object | Function

Defines the custom rendering of the pager. Accepts a slot name, a render function, or a Vue component.

pageSize?

number

Defines the page size that is used by the Grid pager (see example). Required by the paging functionality.

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.

rowClass?

Function

A function that returns a custom class applied to the row.

rowHeight?

number

Defines the row height and forces an equal height to all rows (see example).

rowRender?

string | boolean | (h: any, defaultRendering: any, defaultSlots: any, props: any, listeners: any) => any

Defines the custom rendering of the row. Accepts a Vue component, a render function, or a slot name.

rowSpannable?

boolean | GridRowSpannableSettings

Enables the built-in row span feature of the Grid.

jsx
<Grid rowSpannable={true} />

scrollable?

string

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 the height option.
  • virtual—Displays no pager and renders a portion of the data (optimized rendering)

while the user is scrolling the content.

CompositeFilterDescriptor

The descriptor by which the data is searched. Its first FilterDescriptor populates the GridSearchBox.

vue
<Grid :search="{ logic: 'and', filters: [{ field: 'name', operator: 'contains', value: 'test' }] }" />

searchFields?

undefined[]

Defines the fields of the data that are filtered by the GridSearchBox.

vue
<Grid :search-fields="['name', 'category']" />

selectedField?

string

Specifies the name of the field which will provide a Boolean representation of the selected state of the item (see example).

showLoader?

boolean

Specifies whether the loader of the Grid will be displayed. Defaults to false.

size?

string

undefined

Configures the size of the Grid.

The available options are:

  • small
  • medium

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?

GridSortSettings

Enables the sorting for the columns with their field option set (see example).

style?

any

Represents the style HTML attribute.

take?

number

Alias of the pageSize property. If take is set, pageSize will be ignored.

topCacheCount?

number

Deprecated. Not needed any more.

total?

number

Defines the total number of data items in all pages (see example). Required by the paging functionality.

totalGroupedHeight?

number

Deprecated. Not needed any more.

uniqueField?

string

Deprecated. Not needed any more. Use 'dataItemKey' instead.

Not finding the help you need?
Contact Support