• Edit
  • Download
  • <!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 Column" 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="#" type="Number"></zg-column>
          <zg-column index="first, last" header="Player" type="fullname"></zg-column>
          <zg-column index="col" type="upper" header="College"></zg-column>
          <zg-column index="feet, inch" header="Height" type="height"></zg-column>
        </zg-colgroup>
      </zing-grid>
      <script>
        ZingGrid.setLicense(['26ccbfec16b8be9ee98c7d57bee6e498']); // renderer function for cell
        function heightRenderer(feet, inch, cellRef, $cell) {
          return feet + "'" + inch + '"';
        }
    
        // renderer function for cell
        function nameRenderer(first, last, cellRef, $cell) {
          return first.toUpperCase() + ' ' + last.toUpperCase();
        }
    
        // renderer function for cell
        function upperRenderer(mRawData, cellRef, $cell) {
          return mRawData.toUpperCase();
        }
    
        // 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) {
            return 'Edited: ' + editorField.querySelector('input').value;
          },
        };
    
    
        ZingGrid.registerCellType('height', {
          renderer: heightRenderer,
        });
    
        ZingGrid.registerCellType('fullname', {
          renderer: nameRenderer,
        });
    
        ZingGrid.registerCellType('upper', {
          editor: editor,
          renderer: upperRenderer,
        });
      </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 Column" 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="#" type="Number"></zg-column>
          <zg-column index="first, last" header="Player" type="fullname"></zg-column>
          <zg-column index="col" type="upper" header="College"></zg-column>
          <zg-column index="feet, inch" header="Height" type="height"></zg-column>
        </zg-colgroup>
      </zing-grid>
    </body>
    
    </html>
    html,
    body {
      height: 100%;
      width: 100%;
      margin: 0;
      padding: 0;
    }
    // renderer function for cell
    function heightRenderer(feet, inch, cellRef, $cell) {
      return feet + "'" + inch + '"';
    }
    
    // renderer function for cell
    function nameRenderer(first, last, cellRef, $cell) {
      return first.toUpperCase() + ' ' + last.toUpperCase();
    }
    
    // renderer function for cell
    function upperRenderer(mRawData, cellRef, $cell) {
      return mRawData.toUpperCase();
    }
    
    // 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) {
        return 'Edited: ' + editorField.querySelector('input').value;
      },
    };
    
    
    ZingGrid.registerCellType('height', {
      renderer: heightRenderer,
    });
    
    ZingGrid.registerCellType('fullname', {
      renderer: nameRenderer,
    });
    
    ZingGrid.registerCellType('upper', {
      editor: editor,
      renderer: upperRenderer,
    });