• Edit
  • Download
  • <!DOCTYPE html>
    <html>
    
    <head>
      <meta charset="utf-8">
      <title>ZingGrid: Blank Grid</title>
      <script src="https://cdn.zinggrid.com/dev/zinggrid-dev.min.js" defer></script>
      <style>
        body {
          background: #e6e6e6;
        }
    
        zing-grid[loading] {
          height: 101px;
        }
      </style>
    </head>
    
    <body>
    
      <zing-grid caption="Dynamic Data" layout="row" layout-controls>
      </zing-grid>
    
      <script>
        // 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.onload 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" defer></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.onload 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);
    
    });