Package Exports
- canvas-datagrid
- canvas-datagrid/dist/canvas-datagrid
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (canvas-datagrid) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
canvas-datagrid
Demo - City of Chicago government employee list. Thanks to data.gov.

- Support for unlimited rows and columns without paging or loading.
- Drawn in immediate mode, data size does not impact performance.
- Native support for touch devices (phones and tablets).
- Extensible styling, filtering, formatting, resizing, selecting, and ordering.
- Rich API of events, methods and properties using the familiar W3C DOM interface.
- Works with Firefox, IE11, Edge, Safari and Chrome.
- Support for hierarchal drill in style row level inner grids as well grids in cells.
- Customizable hierarchal context menu.
- Built in and custom styles.
- W3C web component.
- Per-user styles, view preferences and settings using localStorage.
- Very small file size, no dependencies.
Download latest version (minified)
Installation
With npm
npm install canvas-datagridWith bower
bower install canvas-datagridPlace the single source file ./dist/canvas-datagrid.js in your web page using
a script tag that points to the source or use webpack.
<script src="dist/canvas-datagrid.js"></script>Alternatively, instead of downloading and installing, you can link directly to an NPM CDN like unpkg.com.
<script src="https://unpkg.com/canvas-datagrid"></script>A function will be added to the global scope of the web page called canvasDatagrid as well as module loader definitions.
Getting started
Works with webpack, without webpack or as a web component.
No matter how you load it, canvasDatagrid is declared in the global scope.
Canvas-datagrid is a Web Component when
in a compatible browser, otherwise it is a <canvas> tag.
Using pure JavaScript
var grid = canvasDatagrid();
document.body.appendChild(grid);
grid.data = [
{col1: 'row 1 column 1', col2: 'row 1 column 2', col3: 'row 1 column 3'},
{col1: 'row 2 column 1', col2: 'row 2 column 2', col3: 'row 2 column 3'}
];Using web component
<canvas-datagrid class="myGridStyle">[
{"col1": "row 1 column 1", "col2": "row 1 column 2", "col3": "row 1 column 3"},
{"col1": "row 2 column 1", "col2": "row 2 column 2", "col3": "row 2 column 3"}
]</canvas-datagrid>More Demos
XHR data paging demo - Jeopardy Questions API. Thanks to jservice for the use of the free paging API. Note: you must "load unsafe scripts" or relevant command to allow HTTPS (github) to make XHR requests to HTTP (Jeopardy Questions API). There is nothing unsafe about this.
Pivot-form integration example - pivot-form is the companion library to canvas-datagrid. Where canvas-datagrid is a focused on large datasets, pivot-form is focused on a single row of data, providing rich UI abstractions such as dialogs, tabs, split-containers and more to present your schemas without the need to write complex UI interactions.
Building & Testing
To install development dependencies. Required to build or test.
npm installTo build production and debug versions.
npm run build-allTo build production version.
npm run build-prdTo build debug version.
npm run build-devTo build debug version anytime a file in ./lib changes.
npm run build-watchTo build documentation.
npm run build-docsTo run tests.
npm test