<!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: 93px;
}
</style>
</head>
<body class="zg-body">
<div class="inner--container">
<!-- toggle controls -->
<div class="controls--container">
<div>
<label for="group1">Group By Season: </label>
<input type="checkbox" checked id="group1" data-group-index="season">
<br>
<label for="group2">group By Episode: </label>
<input type="checkbox" checked id="group2" data-group-index="episode">
<br>
<label for="group3">group By Method: </label>
<input type="checkbox" id="group3" data-group-index="method">
<br>
<label for="group3">group By Location: </label>
<input type="checkbox" id="group4" data-group-index="location">
<br>
<label for="group3">group By Allegiance: </label>
<input type="checkbox" id="group5" data-group-index="allegiance">
</div>
</div>
<zing-grid caption="GroupBy Example" group-by="season,episode" src="https://cdn.zinggrid.com/datasets/got-deaths.json">
</zing-grid>
</div>
<script>
ZingGrid.setLicense(['26ccbfec16b8be9ee98c7d57bee6e498']); // element references
const zgRef = document.querySelector('zing-grid');
const groupByInputs = document.querySelectorAll('input[type="checkbox"]');
// function declarations
function _groupByGrid(e) {
// Determine which indices to group by
let checked = document.querySelectorAll('[data-group-index');
let columnIndex = [...checked]
.map((el) => el.checked ? el.getAttribute('data-group-index') : false)
.filter((index) => index)
.join(',');
// API method to actually group
zgRef.setGroupBy(columnIndex);
}
// add event listeners
[...groupByInputs].forEach(groupByInput => {
groupByInput.addEventListener('change', _groupByGrid);
});
</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="group1">Group By Season: </label>
<input type="checkbox" checked id="group1" data-group-index="season">
<br>
<label for="group2">group By Episode: </label>
<input type="checkbox" checked id="group2" data-group-index="episode">
<br>
<label for="group3">group By Method: </label>
<input type="checkbox" id="group3" data-group-index="method">
<br>
<label for="group3">group By Location: </label>
<input type="checkbox" id="group4" data-group-index="location">
<br>
<label for="group3">group By Allegiance: </label>
<input type="checkbox" id="group5" data-group-index="allegiance">
</div>
</div>
<zing-grid caption="GroupBy Example" group-by="season,episode" src="https://cdn.zinggrid.com/datasets/got-deaths.json">
</zing-grid>
</div>
</body>
</html>
.zg-body .controls--container {
padding: 1rem;
}
// element references
const zgRef = document.querySelector('zing-grid');
const groupByInputs = document.querySelectorAll('input[type="checkbox"]');
// function declarations
function _groupByGrid(e) {
// Determine which indices to group by
let checked = document.querySelectorAll('[data-group-index');
let columnIndex = [...checked]
.map((el) => el.checked ? el.getAttribute('data-group-index') : false)
.filter((index) => index)
.join(',');
// API method to actually group
zgRef.setGroupBy(columnIndex);
}
// add event listeners
[...groupByInputs].forEach(groupByInput => {
groupByInput.addEventListener('change', _groupByGrid);
});