Slickgrid - Template
by origineil
HTML
<script src="https://raw.github.com/mleibman/SlickGrid/master/slick.dataview.js"></script>
<script src="https://raw.github.com/mleibman/SlickGrid/master/lib/jquery.event.drag-2.2.js"></script>
<script src="https://raw.github.com/mleibman/SlickGrid/master/slick.core.js"></script>
<script src="https://raw.github.com/mleibman/SlickGrid/master/slick.grid.js"></script>
<link rel="stylesheet" href="http://mleibman.github.io/SlickGrid/slick.grid.css">
<div id="myGrid" style="width:600px;height:500px;"></div>
JavaScript
var dataView = new Slick.Data.DataView();
//Create columns
var columns = [
{id: "column1", name: "ID", field: "id", sortable: true},
{id: "column2", name: "Language", field: "lang"},
{id: "column3", name: "Year", field: "year"}
];
var options = {
enableCellNavigation: true,
editable: true
};
// Pass it as a data provider to SlickGrid.
var grid = new Slick.Grid('#myGrid', dataView, columns, options);
grid.onSort.subscribe(function(e, args) {
var comparer = function(a, b) {
return (a[args.sortCol.field] > b[args.sortCol.field]) ? 1 : -1;
}
dataView.sort(comparer, args.sortAsc);
});
// Make the grid respond to DataView change events.
dataView.onRowCountChanged.subscribe(function (e, args) {
grid.updateRowCount();
grid.render();
});
dataView.onRowsChanged.subscribe(function (e, args) {
grid.invalidateRows(args.rows);
grid.render();
});
var data = [
{'id': 'l1', 'lang': 'Java', 'year': 1995},
{'id': 'l2', 'lang': 'JavaScript', 'year': 1995},
{'id': 'l3', 'lang': 'C#', 'year': 2000},
{'id': 'l4', 'lang': 'Python', 'year': 1991}];
// This will fire the change events and update the grid.
dataView.setItems(data);