<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>ZingGrid: Docs Getting Started</title>
  <!--Script Reference[1]-->
  <script nonce="undefined" src="https://cdn.zinggrid.com/zinggrid.min.js"></script>
  <style>
    html,
    body {
      height: 100%;
      width: 100%;
      margin: 0;
      padding: 0;
    }
    zing-grid[loading] {
      height: 277px;
    }
  </style>
</head>
<body>
  <!--Grid Component Placement[2]-->
  <zing-grid caption="Register Custom Editor" editor>
    <zg-data data='[{
          "num": "3",
          "feet": "6",
          "inch": "0",
          "first": "Roberto",
          "last": "Aguayo",
          "col": "Florida State"
      }, {
          "num": "83",
          "feet": "6",
          "inch": "4",
          "first": "Braedon",
          "last": "Bowman",
          "col": "South Alabama"
      }, {
          "num": "67",
          "feet": "6",
          "inch": "6",
          "first": "Brett",
          "last": "Boyko",
          "col": "Nevada-Las Vegas"
      } ]'></zg-data>
    <zg-colgroup>
      <zg-column index="num" header="#"></zg-column>
      <zg-column index="first, last" header="Player"></zg-column>
      <zg-column index="col" header="College"></zg-column>
      <zg-column index="feet, inch" header="Height">
        [[index.feet]]" [[index.inch]]'
      </zg-column>
    </zg-colgroup>
  </zing-grid>
  <script>
    ZingGrid.setLicense(['26ccbfec16b8be9ee98c7d57bee6e498']); // window:load event for Javascript to run after HTML
    // because this Javascript is injected into the document head
    window.addEventListener('load', () => {
      // Javascript code to execute after DOM content
      // hooks for editor
      let editor = {
        init($cell, editorField) {
          let oDOMInput = document.createElement('input');
          oDOMInput.type = 'text';
          oDOMInput.autoComplete = 'off';
          oDOMInput.ariaInvalid = false;
          editorField.appendChild(oDOMInput);
        },
        onOpen($cell, editorField, mData) {
          let oDOMInput = editorField.querySelector('input');
          if (!mData) {
            mData = editorField.value || '';
          }
          oDOMInput.value = String(mData);
        },
        onClose(editorField) {
          console.log('close');
          return 'Edited: ' + editorField.querySelector('input').value;
        },
      };
      // Register Editor
      ZingGrid.registerEditor(editor, 'prependEdited');
      // Assign Editor
      let zgRef = document.querySelector('zing-grid');
      zgRef.executeOnLoad(() => {
        let zgColRef = document.querySelector('zg-column[index="col"]');
        zgColRef.editor = 'prependEdited';
      });
    });
  </script>
</body>
</html>
       
      
        
        <!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>ZingGrid: Docs Getting Started</title>
  <!--Script Reference[1]-->
  <script src="https://cdn.zinggrid.com/zinggrid.min.js"></script>
</head>
<body>
  <!--Grid Component Placement[2]-->
  <zing-grid caption="Register Custom Editor" editor>
    <zg-data data='[{
          "num": "3",
          "feet": "6",
          "inch": "0",
          "first": "Roberto",
          "last": "Aguayo",
          "col": "Florida State"
      }, {
          "num": "83",
          "feet": "6",
          "inch": "4",
          "first": "Braedon",
          "last": "Bowman",
          "col": "South Alabama"
      }, {
          "num": "67",
          "feet": "6",
          "inch": "6",
          "first": "Brett",
          "last": "Boyko",
          "col": "Nevada-Las Vegas"
      } ]'></zg-data>
    <zg-colgroup>
      <zg-column index="num" header="#"></zg-column>
      <zg-column index="first, last" header="Player"></zg-column>
      <zg-column index="col" header="College"></zg-column>
      <zg-column index="feet, inch" header="Height">
        [[index.feet]]" [[index.inch]]'
      </zg-column>
    </zg-colgroup>
  </zing-grid>
</body>
</html>
       
      
        html,
body {
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
}
       
      
        // window:load event for Javascript to run after HTML
// because this Javascript is injected into the document head
window.addEventListener('load', () => {
  // Javascript code to execute after DOM content
  // hooks for editor
  let editor = {
    init($cell, editorField) {
      let oDOMInput = document.createElement('input');
      oDOMInput.type = 'text';
      oDOMInput.autoComplete = 'off';
      oDOMInput.ariaInvalid = false;
      editorField.appendChild(oDOMInput);
    },
    onOpen($cell, editorField, mData) {
      let oDOMInput = editorField.querySelector('input');
      if (!mData) {
        mData = editorField.value || '';
      }
      oDOMInput.value = String(mData);
    },
    onClose(editorField) {
      console.log('close');
      return 'Edited: ' + editorField.querySelector('input').value;
    },
  };
  // Register Editor
  ZingGrid.registerEditor(editor, 'prependEdited');
  // Assign Editor
  let zgRef = document.querySelector('zing-grid');
  zgRef.executeOnLoad(() => {
    let zgColRef = document.querySelector('zg-column[index="col"]');
    zgColRef.editor = 'prependEdited';
  });
});