• Edit
  • Download
  • <!DOCTYPE html>
    <html>
    
    <head>
      <meta charset="utf-8">
      <title>ZingGrid: Blank Grid</title>
      <script nonce="undefined" src="https://cdn.zinggrid.com/dev/zinggrid-dev.min.js"></script>
      <style>
        body {
          background: #e6e6e6;
        }
    
        zing-grid[loading] {
          height: 172px;
        }
      </style>
    </head>
    
    <body>
    
      <zing-grid caption="Dynamic Data" layout="row" layout-controls>
      </zing-grid>
    
      <script>
        ZingGrid.setLicense(['26ccbfec16b8be9ee98c7d57bee6e498']); // function to mimic data changing
        function shuffleData(arr) {
          const newArr = arr.slice()
          for (let i = newArr.length - 1; i > 0; i--) {
            const rand = Math.floor(Math.random() * (i + 1));
            [newArr[i], newArr[rand]] = [newArr[rand], newArr[i]];
          }
          return newArr
        };
    
        // 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
          const zgRef = document.querySelector('zing-grid');
          let intervalTimeoutId = setInterval(() => {
            fetch('https://cdn.zinggrid.com/datasets/remote-data-recordpath.json')
              .then(res => res.json())
              .then(data => {
                // in this use case our endpoint is not updating so
                // we fake an endpoint update by manipulating the data
                const newData = shuffleData(data.company.employees);
                // update data
                zgRef.setData(newData);
              })
              .catch(err => console.error('--- Error In Fetch Occurred ---', err));
          }, 1000);
    
        });
      </script>
    </body>
    
    </html>
    <!DOCTYPE html>
    <html>
    
    <head>
      <meta charset="utf-8">
      <title>ZingGrid: Blank Grid</title>
      <script src="https://cdn.zinggrid.com/dev/zinggrid-dev.min.js"></script>
    </head>
    
    <body>
    
      <zing-grid caption="Dynamic Data" layout="row" layout-controls>
      </zing-grid>
    
    </body>
    
    </html>
    body {
      background: #e6e6e6;
    }
    // function to mimic data changing
    function shuffleData(arr) {
      const newArr = arr.slice()
      for (let i = newArr.length - 1; i > 0; i--) {
        const rand = Math.floor(Math.random() * (i + 1));
        [newArr[i], newArr[rand]] = [newArr[rand], newArr[i]];
      }
      return newArr
    };
    
    // 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
      const zgRef = document.querySelector('zing-grid');
      let intervalTimeoutId = setInterval(() => {
        fetch('https://cdn.zinggrid.com/datasets/remote-data-recordpath.json')
          .then(res => res.json())
          .then(data => {
            // in this use case our endpoint is not updating so
            // we fake an endpoint update by manipulating the data
            const newData = shuffleData(data.company.employees);
            // update data
            zgRef.setData(newData);
          })
          .catch(err => console.error('--- Error In Fetch Occurred ---', err));
      }, 1000);
    
    });