Polymer Web Component that generates a sortable <table> from JSON.
There are many capable Javascript grids, this one aims to have all the same features plus:
template
to be fully customizable, andtemplate
for customization (Cells, Rows, Column Headers and Footers)Row Editor with Undo Functionality
Add the library using the Javascript package manager Bower:
bower install --save sortable-table
Import Web Components' polyfill:
<script src="https://github.com/stevenrskelton/sortable-table/raw/master/bower_components/webcomponentsjs/webcomponents.min.js"></script>
Import Custom Element:
<link rel="import" href="https://github.com/stevenrskelton/sortable-table/blob/master/bower_components/sortable-table/sortable-table.html">
Import a theme, like the Bootstrap compatible theme (Optional):
<link rel="stylesheet"
href="https://github.com/stevenrskelton/sortable-table/blob/master/bower_components/sortable-table/css/bootstrap.css" shim-shadowdom>
And include class="bootstrap"
on any sortable-table
to apply.
Start using it!
Start simple and use DOM to configure the grid:
<sortable-table>
<sortable-column>fruit</sortable-column>
<sortable-column>alice</sortable-column>
<sortable-column>bill</sortable-column>
<sortable-column>casey</sortable-column>
<!-- data case be either an Array, JSON, or JSON5 -->
[
[ "apple", 4, 10, 2 ],
[ "banana", 0, 4, 0 ],
[ "grape", 2, 3, 5 ],
[ "pear", 4, 2, 8 ],
[ "strawberry", 0, 14, 0 ]
]
</sortable-table>
Or use Javascript attributes:
<sortable-table columns='["fruit","alice","bill","casey"]' data='[
[ "apple", 4, 10, 2 ],
[ "banana", 0, 4, 0 ],
[ "grape", 2, 3, 5 ],
[ "pear", 4, 2, 8 ],
[ "strawberry", 0, 14, 0 ] ]'>
</sortable-table>
Or take advanced control with custom templates, 2-way data binding, and a remote datasource:
<sortable-table columns="{{columns}}">
<!-- add templates here -->
<!-- add remote datasource here -->
</sortable-table>
For detailed changelog, check Releases.
MIT License © Steven Skelton