Skip to content
Ghislain B edited this page May 30, 2024 · 10 revisions

Slickgrid-React

One of the best JavaScript data grid SlickGrid which was originally developed by @mleibman is now available to React. I personally tried a few data grids and SlickGrid beats most of them in terms of functionalities, customizability and performance (it can easily deal with even a million rows).

Documentations

We have a new website (for version 4.x and higher), we recommend you visit the new Documentions website powered by GitBook.

Installation

Follow the HOWTO - Step by Step

Bootstrap support

Slickgrid-React works with Bootstrap 4 and event the latest Bootstrap 5 or any other UI framework

SlickGrid Source

We will be using 6pac SlickGrid fork (the most active fork since the original @mleibman fork was closed some time ago by his author personal reasons).

Goal

The goal is of course to be able to run SlickGrid within React but also to incorporate as much as possible the entire list of functionalities (and more) that SlickGrid offers (you can see a vast list of samples on the 6pac SlickGrid examples website).

Demo page

Demo page includes sample for most of the features and it keeps growing (so you might want to consult it whenever a new version comes out).

NPM Package

slickgrid-react on NPM

Wiki / Documentation

The Wiki is where all the documentation and instructions will go, so please consult the slickgrid-react - Wiki before opening any issues. The Wiki - HOWTO is a great place to start with. You can also take a look at the Demo page, it includes sample for most of the features and it keeps growing (so you might want to consult it whenever a new version comes out).

Main features

You can see some screenshots below and the instructions down below.

This is a work in progress, but so far here are some of the features that slickgrid-react brings (on top of Slickgrid itself):

  • Easier use of SlickGrid within React as it is just a component (simply pass a column definitions and a dataset and you're good to go)
  • Bootstrap Theme with SASS variables for extra customization (if you create a theme, then please make a PR)
  • Auto-resize (boolean flag), will resize the datagrid viewport with available space, that includes when browser resize (basically takes available space from it's parent container)
  • Inline Editors (number, float, text, longText, date, ... you can also create your own custom ones)
  • Formatters to display something different in UI, for example a boolean flag can be shown as a Font-Awesome checkmark icon
  • Filters (input text, select, multi-select, single-select & even custom filter)
    • input text also support operators at the beginning of the input text:
      • <, <=, >, >=, <>, !=, ==, *
      • * can be used for startsWith and endsWith
  • Support all the SlickGrid Controls and Plugins
  • Row(s) Selection
  • Server side (backend) Services (filtering, sorting, pagination)
  • Some features of SlickGrid itself which are working out of the gate
    • Sort/Multi-Sort (client/server side)
    • Header Row with Filters (currently support Input and Select dropdown, multi-select is planned)
    • Inline Editors (number, float, text, longText, date, ... you can also create your own custom ones)
    • Formatters (this as well includes some defaults and they are customizable)
    • Optimized DataView which brings a lot of functionalities (sort, grouping, and more)
      • even server side data is saved back into a SlickGrid DataView to use these functionalities (e.g grouping)
    • All the SlickGrid Events are supported, see the Wiki
  • Localization support with React i18n, please read the Wiki - Localization
  • Export to CSV
  • Reload a grid with certain preset, that is Filters/Orders/Pagination (for more info, see Grid State & Preset)
  • Grouping
  • Pinned (aka frozen) Columns/Rows, see the Wiki

Missing features

What if slickgrid-react is missing feature(s) versus the original SlickGrid?

Fear not and simply use directly the SlickGrid and DataView objects that are expose from the start through Event Emitters. For more info continue reading on Wiki - SlickGrid & DataView objects and Wiki - Grid & DataView Events

Clone this wiki locally