• 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 .controls--container {
          padding: 1rem;
        }
    
    
        zing-grid[loading] {
          height: 653px;
        }
      </style>
    </head>
    
    <body class="zg-body">
      <div class="inner--container">
        <!-- toggle controls -->
        <div class="controls--container">
          <div>
            <label for="filter1">Filter By Genre (Crime): </label>
            <input type="checkbox" id="filter1" data-filter-index="genre" data-filter="Crime">
            <br>
            <label for="filter2">Filter By Year (1994): </label>
            <input type="checkbox" id="filter2" data-filter-index="year" data-filter="1994">
          </div>
        </div>
        <zing-grid caption="HTML filter Ex" filter viewport-stop>
          <zg-data data=' [{
              "title": "The Shawshank Redemption", 
              "year": "1994", 
              "genre": "Crime, Drama"
            }, {
              "title": "The Godfather", 
              "year": "1972", 
              "genre": "Crime, Drama"
            }, {
              "title": "Forest Gump", 
              "year": "1994", 
              "genre": "Comedy, Drama, Romance"
            }, {
              "title": "The Matrix", 
              "year": "1999", 
              "genre": "Action, Sci-Fi"
            }, {
              "title": "Inception", 
              "year": "2010", 
              "genre": "Action, Adventure, Sci-Fi"
            }, {
              "title": "Pulp Fiction", 
              "year": "1994", 
              "genre": "Crime, Drama"
            }, {
              "title": "Django Unchained", 
              "year": "2012", 
              "genre": "Drama, Western"
            }, {
              "title": "The Prestige", 
              "year": "2006", 
              "genre": "Drama, Mystery, Sci-Fi"
            }, {
              "title": "Memento", 
              "year": "2000", 
              "genre": "Mystery, Thriller"
            }, {
              "title": "Gone Girl", 
              "year": "2014", 
              "genre":"Crime, Drama, Mystery"
            }]'>
          </zg-data>
        </zing-grid>
      </div>
      <script>
        ZingGrid.setLicense(['26ccbfec16b8be9ee98c7d57bee6e498']); // element references
        const filterInputs = document.querySelectorAll('input[type="checkbox"]');
        const zgRef = document.querySelector('zing-grid');
    
        // function declarations
        function _filterGrid(e) {
          let columnIndex = e.target.getAttribute('data-filter-index');
          let columnFilterValue = e.target.getAttribute('data-filter');
          let filterOn = e.target.checked;
    
          // if checked off, make sure to turn off filter 
          if (!filterOn) columnFilterValue = '';
    
          // API method to actually filter
          zgRef.filterColumn(columnIndex, columnFilterValue);
        }
    
        // add event listeners
        [...filterInputs].forEach(filterInput => {
          filterInput.addEventListener('change', _filterGrid);
        });
      </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="filter1">Filter By Genre (Crime): </label>
            <input type="checkbox" id="filter1" data-filter-index="genre" data-filter="Crime">
            <br>
            <label for="filter2">Filter By Year (1994): </label>
            <input type="checkbox" id="filter2" data-filter-index="year" data-filter="1994">
          </div>
        </div>
        <zing-grid caption="HTML filter Ex" filter viewport-stop>
          <zg-data data=' [{
              "title": "The Shawshank Redemption", 
              "year": "1994", 
              "genre": "Crime, Drama"
            }, {
              "title": "The Godfather", 
              "year": "1972", 
              "genre": "Crime, Drama"
            }, {
              "title": "Forest Gump", 
              "year": "1994", 
              "genre": "Comedy, Drama, Romance"
            }, {
              "title": "The Matrix", 
              "year": "1999", 
              "genre": "Action, Sci-Fi"
            }, {
              "title": "Inception", 
              "year": "2010", 
              "genre": "Action, Adventure, Sci-Fi"
            }, {
              "title": "Pulp Fiction", 
              "year": "1994", 
              "genre": "Crime, Drama"
            }, {
              "title": "Django Unchained", 
              "year": "2012", 
              "genre": "Drama, Western"
            }, {
              "title": "The Prestige", 
              "year": "2006", 
              "genre": "Drama, Mystery, Sci-Fi"
            }, {
              "title": "Memento", 
              "year": "2000", 
              "genre": "Mystery, Thriller"
            }, {
              "title": "Gone Girl", 
              "year": "2014", 
              "genre":"Crime, Drama, Mystery"
            }]'>
          </zg-data>
        </zing-grid>
      </div>
    </body>
    
    </html>
    .zg-body .controls--container {
      padding: 1rem;
    }
    // element references
    const filterInputs = document.querySelectorAll('input[type="checkbox"]');
    const zgRef = document.querySelector('zing-grid');
    
    // function declarations
    function _filterGrid(e) {
      let columnIndex = e.target.getAttribute('data-filter-index');
      let columnFilterValue = e.target.getAttribute('data-filter');
      let filterOn = e.target.checked;
    
      // if checked off, make sure to turn off filter 
      if (!filterOn) columnFilterValue = '';
    
      // API method to actually filter
      zgRef.filterColumn(columnIndex, columnFilterValue);
    }
    
    // add event listeners
    [...filterInputs].forEach(filterInput => {
      filterInput.addEventListener('change', _filterGrid);
    });