Handsontable example

by santhucool007

HTML

<div id="example2" class="hot handsontable"></div>

CSS

</style><!-- Ugly Hack due to jsFiddle issue -->

<script src="http://docs.handsontable.com/0.16.0/scripts/jquery.min.js"></script>
<script src="http://docs.handsontable.com/0.16.0/bower_components/handsontable/dist/handsontable.full.js"></script>
<link type="text/css" rel="stylesheet" href="http://docs.handsontable.com/0.16.0/bower_components/handsontable/dist/handsontable.full.min.css">

JavaScript

document.addEventListener("DOMContentLoaded", function() {

  function getCarData() {
    return [
      {car: 'Nissan', year: 2012, chassis: 'black', bumper: 'black'},
      {car: 'Nissan', year: 2013, chassis: 'blue', bumper: 'blue'},
      {car: 'Chrysler', year: 2014, chassis: 'yellow', bumper: 'black'},
      {car: 'Volvo', year: 2015, chassis: 'white', bumper: 'gray'}
    ];
  }
  
  var
    container2 = document.getElementById('example2'),
    hot2;
  
  hot2 = new Handsontable(container2, {
    data: getCarData(),
    colHeaders: ['Car', 'Year', 'Chassis color', 'Bumper color']
  });
  hot2.updateSettings({
    cells: function (row, col, prop) {
      var cellProperties = {};
  
      if (hot2.getData()[row][prop] === 'Nissan') {
        cellProperties.editor = false;
      } else {
        cellProperties.editor = 'text';
      }
  
      return cellProperties;
    }
  })
  
  function bindDumpButton() {
      if (typeof Handsontable === "undefined") {
        return;
      }
  
      Handsontable.Dom.addEvent(document.body, 'click', function (e) {
  
        var element = e.target || e.srcElement;
  
        if (element.nodeName == "BUTTON" && element.name == 'dump') {
          var name = element.getAttribute('data-dump');
          var instance = element.getAttribute('data-instance');
          var hot = window[instance];
          console.log('data of ' + name, hot.getData());
        }
      });
    }
  bindDumpButton();

});