Recently I was looking for grid/table component in Javascript which is would be open-source, flexible enough and not tied heavily to some large framework. I'd like to share with you some brief notes of that research. I like SlickGrid more so I've explored it more.

SlickGrid

  • https://github.com/mleibman/SlickGrid/wiki
  • License: MIT
  • PROs:
    • Supports huge datasets via virtual scrolling. Looks like it's the only grid that supports horizontal virtual scrolling.  
    • Supports trees
    • Data provider API - allows model creation. Transparent update of model.
    • Long text editor support: double-clicick the cell and edit its content in a pop-up
    • Automatic shortening of long content
    • Supports cell horizontal spanning
    • Hosted on GitHub and actively accepts pull requests
  • CONs:
    • Poor documentation
    • No built-in dropdown editor
    • No fixed columns
    • Doesn't support cell vertical spanning.
    • Column width specified only in pixels - no percents. However, with grid.autosizeColumns() columns can be proportionally resized
    • Width adjusting is weird. Involves JavaScript handling, not just CSS.
    • Always displaying editor (for example, dropdown box) is not easy. It requires asyncPostRenderer
    • Mobile devices officially not supported (and not planned to support ever), but on my Android 4 tablet most functionality work OK. And there is a fork with support of mobile devices: https://github.com/reebalazs/SlickGrid-touch  

EditableGrid

jqGrid

  • http://www.trirand.com/blog/
  • License: MIT
  • PROs:
    • Rich feature set: trees, subtables etc
    • Mobile beta available
    • Supports column hierarchy, though API for this is a nightmare.
    • Hosted on GitHub, sometimes accept pull request
  • CONs:
    • No data model
    • Inconvinient configuration (for example, proprietary format for dropdown lists instead of using JS object)
    • Some plugins (for example, table to grid converter) pollute global namespace

DataTables

  • http://www.datatables.net/
  • License: GPLv2, BSD
  • PROs
    • Lightweight
  • CONs
    • Editability requires plugin
    • No data model
    • No tree support
    • Plugin for changing column width is buggy