A lightning fast JavaScript grid/spreadsheet
Switch branches/tags
Clone or download
Pull request Compare This branch is 969 commits ahead, 2 commits behind mleibman:master.
GerHobbelt Merge remote-tracking branch 'remotes/mplorentz/patch-1' into k0stya-…
…rowspan

Conflicts:
	plugins/slick.cellexternalcopymanager.js
Latest commit d0577b3 Aug 15, 2015
Permalink
Failed to load latest commit information.
controls Merge remote-tracking branch 'remotes/GerHobbelt/paging-buttons' into… Aug 15, 2015
css/smoothness getting rid of version numbers in filenames for jQuery-UI; it's only … Dec 16, 2013
documentation `forceEdit` and `forceEditMode` are now consistently called `forceEdi… Jan 8, 2015
examples `forceEdit` and `forceEditMode` are now consistently called `forceEdi… Jan 8, 2015
images add hierarchy icons for expanding & collapsing trees (plus, minus, wi… Feb 14, 2014
lib updated libraries Apr 12, 2015
plugins `forceEdit` and `forceEditMode` are now consistently called `forceEdi… Jan 8, 2015
tests do not reference JS files in submodules (a grunt task is present to c… Nov 23, 2014
util updated submodules' registration scripts Nov 19, 2014
wrappers a plethora of fixes for grid invalidate/update/render, rowpan/colpan … Nov 17, 2014
.csscomb.json Grunt task added: JSLint et al Feb 12, 2014
.csslintrc - fixing a series of CClint, JSlint and JSCS reports, including dupli… Feb 24, 2014
.editorconfig Cell row/cellspan minor fixes. Jun 7, 2013
.gitattributes a plethora of fixes for grid invalidate/update/render, rowpan/colpan … Nov 17, 2014
.gitignore ignore analyze-github script cache Jan 18, 2015
.gitmodules a plethora of fixes for grid invalidate/update/render, rowpan/colpan … Nov 17, 2014
.jscs.json Grunt task added: JSLint et al Feb 12, 2014
.jshintrc - fixing a series of CClint, JSlint and JSCS reports, including dupli… Feb 24, 2014
Global.asax Per-cell CSS support added: Apr 22, 2013
Gruntfile.js - updated the libraries Nov 19, 2014
MIT-LICENSE.txt Added an explicit license (MIT). Jan 21, 2010
README.md Merge commit '71a96abc9258c4c6e3de2d76a9bd79dfc8fccd0c' into k0stya-r… Nov 23, 2014
Web.config demo for fixed columns with nested headers Jan 21, 2013
bower.json Merge commit '71a96abc9258c4c6e3de2d76a9bd79dfc8fccd0c' into k0stya-r… Nov 23, 2014
package.json updated external copy manager module: Oct 3, 2014
resharper.DotSettings rowspan initial implementation May 3, 2013
slick-default-theme.css regenerated the CSS files; no real change. Apr 12, 2015
slick-default-theme.less a plethora of fixes for grid invalidate/update/render, rowpan/colpan … Nov 17, 2014
slick-editors.css - fixing a series of CClint, JSlint and JSCS reports, including dupli… Feb 24, 2014
slick-editors.less whitespace police raid Feb 13, 2014
slick.config.default-theme.less LESSified the CSS, including a separate LESS file for the slickgrid e… Feb 13, 2014
slick.config.less - cleanup: killed the $headerRowSpacer + $footerRowSpacer DIVs: those… Oct 28, 2014
slick.core.js - moved the `absBox()` semi-internal API to the utilities: `Slick.Box… Apr 12, 2015
slick.dataview.js Merge remote-tracking branch 'remotes/michalcarson/master' into k0sty… Nov 23, 2014
slick.editors.js Merge remote-tracking branch 'remotes/nathanstiles/pdc' into smooth-s… Oct 23, 2014
slick.extensions.js - fixing a series of CClint, JSlint and JSCS reports, including dupli… Feb 24, 2014
slick.formatters.js another obvious merge bugfix and some JSHint happiness Mar 30, 2014
slick.grid.css regenerated the CSS files; no real change. Apr 12, 2015
slick.grid.js - moved the `absBox()` semi-internal API to the utilities: `Slick.Box… Apr 12, 2015
slick.grid.less a plethora of fixes for grid invalidate/update/render, rowpan/colpan … Nov 17, 2014
slick.grid.scss add LESS styles files Feb 12, 2014
slick.groupitemmetadataprovider.js a plethora of fixes for grid invalidate/update/render, rowpan/colpan … Nov 17, 2014
slick.less.macros.less whitespace police raid Feb 13, 2014
slick.remotemodel.js whitespace police raid Feb 24, 2014

README.md

SlickGrid - A lightning fast JavaScript grid/spreadsheet

Welcome to SlickGrid

Find documentation and examples in the original wiki and this clone's wiki. This is a fork of SlickGrid maintained by Ger Hobbelt / Visyond Inc. The new features that have been added / mixed in:

This Fork's Features

  • Cells spanning arbitrary numbers of rows and/or columns (colspan / rowspan)
  • A footer row that mimics the behavior of the header row, with similar options and controls.
  • Enhanced info feed to/from Formatters and Editors
  • Formatters can now change/augment the cell's CSS classes (no more need for SPAN or DIV in cell plus fixup CSS to apply styling to entire cell)
  • Indirect data addressing via DataView
  • Formatters and Editors adapted for the above
  • Internal and external Copy/Cut/Paste through the usual keyboard shortcuts
  • Mouse & Touch support
  • grid.updateColumnWidths() API: very significant performance improvement; pull request with notes here
  • grid.getId() lets you get the uid of the grid instance
  • Triggers existing event onColumnsResized when you change the column widths
  • Triggers a new event onColumnsChanged when you set the columns
  • Exposes the existing method grid.setupColumnResize(), which allows you to re-enable column resizing if you're manually screwing around with the headers.
  • Some new options on setColumns and resizeCanvas let you prevent some of the expensive calculations, useful if you're doing them yourself externally.

This fork adds the following method:

grid.updateColumnWidths(columnDefinitions)

Using this method improves the performance of changing the width of one or more grid columns by a lot. The existing API only allows for a whole grid redraw, which can be very slow. Pull request with notes here. Use cases for fast column size adjustment may be: auto-sizing columns to fit content, responsive sizing cells to fill the screen, and similar.

Also exposes the existing method grid.setupColumnResize, which allows you to re-enable column resizing if you're manually screwing around with the headers.

Message by Michael Leibman (@mleibman)

UPDATE: March 5th, 2014 - I have too many things going on in my life right now to really give SlickGrid support and development the time and attention it deserves. I am not stopping it, but I will most likely be unresponsive for some time. Sorry.

SlickGrid is an advanced JavaScript grid/spreadsheet component

Some highlights:

  • Adaptive virtual scrolling (handle hundreds of thousands of rows with extreme responsiveness)
  • Extremely fast rendering speed
  • Supports jQuery UI Themes
  • Background post-rendering for richer cells
  • Configurable & customizable
  • Full keyboard navigation
  • Column resize/reorder/show/hide
  • Column autosizing & force-fit
  • Pluggable cell formatters & editors
  • Support for editing and creating new rows.
  • Grouping, filtering, custom aggregators, and more!
  • Advanced detached & multi-field editors with undo/redo support.
  • “GlobalEditorLock” to manage concurrent edits in cases where multiple Views on a page can edit the same data.
  • Support for millions of rows

TODO

  • extend the set of unit tests for DataView to help test grouping behaviour (which currently has bugs) and indirect access
  • extend set of examples, including external keyboard driver (e.g. keymaster.js)
  • 'pace' the new delayed render activity, etc. using an external 'clock': now everything is running on individual setTimeout()s and userland code needs more control over when these fire exactly.
  • enable Copy/Cut/Paste via externally triggered event or API call (so you can execute those commands from external controls)
  • integrate the fixed-row/column work by JLynch7; that merge branch is currently botched -- EDIT: do not do this; see https://github.com/mleibman/SlickGrid/issues/1033 (#1033)
  • unify Formatters and Editors' API in terms of info passed
  • using jsperf and tests/*.html performance measurements to check current performance and possibly improve it -- EDIT: already did a lot in the render code
  • update wiki with API changes re Formatters and Editors
  • run script / tool to extract/update contributor/author list