• Edit
  • Download
  • <!DOCTYPE html>
    <html>
    
    <head>
      <meta charset="utf-8">
      <title>ZingGrid Demo</title>
      <script nonce="undefined" src="https://cdn.zinggrid.com/zinggrid.min.js"></script>
      <style>
        .zg-body {
          background: #e6e6e6;
        }
    
        .zg-body .controls--container {
          display: flex;
          flex-direction: row;
          justify-content: space-between;
          flex-wrap: wrap;
          margin: 1rem 0;
        }
    
        zing-grid[loading] {
          height: 380px;
        }
      </style>
    </head>
    
    <body class="zg-body">
      <div class="inner--container">
        <!-- toggle controls -->
        <div class="controls--container">
          <div>
            <label for="searchGrid">Search: </label>
            <input type="search" id="searchGrid">
          </div>
        </div>
        <zing-grid caption="Actors/Actresses" search pager page-size="4">
          <zg-data data='[{"name": "Tom Hanks"}, {"name": "Meryl Streep"}, {"name": "Matt Damon"}, {"name": "Morgan Freeman"}, {"name": "Julia Roberts"}, {"name": "Brad Pitt"}, {"name": "Natalie Portman"}, {"name": "Angelina Jolie"}, {"name": "Johnny Depp"}, {"name": "Keira Knightley"}, {"name": "Harrison Ford"}]'></zg-data>
        </zing-grid>
      </div>
      <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
          // element references
          const searchGrid = document.getElementById('searchGrid');
          const zgRef = document.querySelector('zing-grid');
          // debounce search
          let searchTimeoutId = null;
          // function declarations
          function _searchGrid(e) {
            // debounce search
            clearTimeout(searchTimeoutId);
            let targetValue = e.target.value;
            // delay 100 milliseconds to debounce user input
            searchTimeoutId = setTimeout((userInput) => {
              requestAnimationFrame(() => zgRef.searchGrid(userInput));
            }, 100, targetValue);
          }
          // add event listeners
          searchGrid.addEventListener('keyup', _searchGrid);
          searchGrid.addEventListener('change', _searchGrid);
          searchGrid.addEventListener('search', _searchGrid);
        });
      </script>
    </body>
    
    </html>
    <!DOCTYPE html>
    <html>
    
    <head>
      <meta charset="utf-8">
      <title>ZingGrid Demo</title>
      <script src="https://cdn.zinggrid.com/zinggrid.min.js"></script>
    </head>
    
    <body class="zg-body">
      <div class="inner--container">
        <!-- toggle controls -->
        <div class="controls--container">
          <div>
            <label for="searchGrid">Search: </label>
            <input type="search" id="searchGrid">
          </div>
        </div>
        <zing-grid caption="Actors/Actresses" search pager page-size="4">
          <zg-data data='[{"name": "Tom Hanks"}, {"name": "Meryl Streep"}, {"name": "Matt Damon"}, {"name": "Morgan Freeman"}, {"name": "Julia Roberts"}, {"name": "Brad Pitt"}, {"name": "Natalie Portman"}, {"name": "Angelina Jolie"}, {"name": "Johnny Depp"}, {"name": "Keira Knightley"}, {"name": "Harrison Ford"}]'></zg-data>
        </zing-grid>
      </div>
    </body>
    
    </html>
    .zg-body {
      background: #e6e6e6;
    }
    
    .zg-body .controls--container {
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      flex-wrap: wrap;
      margin: 1rem 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
      // element references
      const searchGrid = document.getElementById('searchGrid');
      const zgRef = document.querySelector('zing-grid');
      // debounce search
      let searchTimeoutId = null;
      // function declarations
      function _searchGrid(e) {
        // debounce search
        clearTimeout(searchTimeoutId);
        let targetValue = e.target.value;
        // delay 100 milliseconds to debounce user input
        searchTimeoutId = setTimeout((userInput) => {
          requestAnimationFrame(() => zgRef.searchGrid(userInput));
        }, 100, targetValue);
      }
      // add event listeners
      searchGrid.addEventListener('keyup', _searchGrid);
      searchGrid.addEventListener('change', _searchGrid);
      searchGrid.addEventListener('search', _searchGrid);
    });