<!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); });