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