React Data Grid Lite

Documentation API Reference

🧮 DataGrid

A lightweight, high-performance, and customizable data grid component for React, ideal for rendering large data sets with support for sorting, searching, pagination, theming, and responsive layouts.

Prop Type Description Default Value Required
columns Array Array of column definitions. Each column can have properties like name, width, 'alias', 'enableSearch', 'hidden' etc. - Yes
currentPage string / number Loads the data grid with the specified page number. Useful with query string params for deep linking or bookmarking. Supported in version 1.1.2 and above. - No
data Array Array of objects representing the rows of data to display. - Yes
height string / number The height of the grid. Can be a pixel value (e.g., '300px') or a percentage (e.g., '100%'). Recommended for optimal display of the column. '60vh' No
id string Unique ID for the DataGrid component. Defaults to a random ID in the format id- if not provided. This feature is supported in version 1.0.5 and above. - No
maxHeight string / number The maximum height of the grid. '100vh' No
maxWidth string / number The maximum width of the grid. '100vw' No
onCellUpdate function Callback triggered when a cell edit is saved (e.g., on Enter key press or on cell blur). Receives an object containing details of the updated row and changed cells. Supported in version 1.1.5 and above. - No
onColumnDragEnd function Callback function triggered after a column is dragged and dropped. Supported in v1.1.4 and above. - No
onColumnResized function Callback function triggered after a column is resized. Supported in v1.1.0 and above. - No
onPageChange function Callback function triggered when the user navigates to a different page. - No
onRowClick function Callback function triggered when a row is clicked. The clicked row data is passed as an argument. - No
onRowHover function Callback function triggered when a row is hovered over. - No
onRowOut function Callback function triggered when the mouse leaves a hovered row. - No
onSearchComplete function Callback function triggered after a search operation. - No
onSortComplete function Callback function triggered after sorting finishes. - No
options object An object for additional customization. Contains options like gridClass, enableGlobalSearch, etc. - No
pageSize string / number Number of rows per page for pagination. If null or not provided, pagination is disabled. - No
theme string ('blue-core' | 'dark-stack' | 'medi-glow' | '') Applies a predefined visual theme to the grid. Affects header background, grid body background, borders, and control colors. Use an empty string to apply the default neutral style. Supported in v1.1.1 and above. '' (empty string) No
width string / number The width of the grid. Can be a pixel value (e.g., '500px') or a percentage (e.g., '100%'). Recommended for optimal display of the column. The width can be set to 'inherit' to match the width of the containing element. '90vw' No



🧱 Columns Configuration Example

const columns = [
  {
    name: 'username',
    alias: 'User Name',
    width: '200px',
    enableSearch: true
  },
  {
    name: 'status',
    alias: 'Account Status',
    hidden: false
  }
];

🎛 Props in Action

pageSize + onPageChange

<DataGrid
  columns={columns}
  data={largeDataset}
  pageSize={10}
  onPageChange={(e, newPage) => console.log(`Page changed to: ${newPage}`)}
/>

Row Interaction Events

<DataGrid
  columns={columns}
  data={data}
  onRowClick={(e, row) => alert(`You clicked on ${row.name}`)}
  onRowHover={(e, row) => console.log('Hovered:', row.id)}
  onRowOut={() => console.log('Mouse left row')}
/>

Global Search & Sort Events

<DataGrid
  columns={columns}
  data={data}
  options={ enableGlobalSearch: true }
  onSearchComplete={(e, query, columns, result, matchCount) => console.log('Search Results:', result)}
  onSortComplete={(e, sortColumns, sortedData, sortOrder) => console.log('Sorted Data:', sortedData)}
/>

Custom Grid Dimensions

<DataGrid
  columns={columns}
  data={data}
  width="100%"
  height="400px"
  maxWidth="1200px"
  maxHeight="80vh"
/>

Resizable Columns (v1.1.0+)

<DataGrid
  columns={columns}
  data={data}
  onColumnResized={(e, newWidth, columnName) =>
    console.log(`${columnName} resized to ${newWidth}px`)
  }
/>

🎨 Themes

Available themes:

  • 'blue-core'
  • 'dark-stack'
  • 'medi-glow'
  • '' (default/neutral)

Example:

<DataGrid
  columns={columns}
  data={data}
  theme="blue-core"
/>

📌 Version-Specific Features

Feature Available Since
id prop auto-gen v1.0.5
onColumnResized v1.1.0
theme prop v1.1.1
currentPage prop v1.1.2

Have questions?

Contact on GitHub.