- <!DOCTYPE html>
- <html>
-
- <head>
- <meta charset="utf-8">
- <title>ZingGrid: Blank Grid</title>
- <script nonce="undefined" src="https://cdn.zinggrid.com/dev/zinggrid-dev.min.js"></script>
- <style>
- body {
- background: #e6e6e6;
- }
-
- zing-grid[loading] {
- height: 288px;
- }
- </style>
- </head>
-
- <body>
- <!-- Most features can be toggled on the toplevel zing-grid tag -->
- <zing-grid caption="Custom Card Renderer" columns-control filter layout="card" layout-controls pager page-size="4" page-size-options="2,4,8,16" viewport-stop>
- <!-- dataset -->
- <zg-data data='[
- { "breed": "Cane Corso", "name": "Ziva"},
- { "breed": "Pug", "name": "Doug"},
- { "breed": "Corgi", "name": "Jenny"},
- { "breed": "Pomeranian", "name": "Koda"},
- { "breed": "Great Dane", "name": "Zeus"},
- { "breed": "Frenchie", "name": "Bruce"},
- { "breed": "Cane Corso", "name": "Sofia"},
- { "breed": "Pomeranian", "name": "Snowball"}
- ]'></zg-data>
-
- <!-- define custom card mode -->
- <zg-card renderer="cardRenderer">
- <div>
- <h2>[[record.breed]]</h2>
- <span>Name: [[record.name]]</span>
- <hr>
- <select>
- <option value="" disabled selected>Please Choose One</option>
- </select>
- </div>
- </zg-card>
- </zing-grid>
-
- <script>
- ZingGrid.setLicense(['26ccbfec16b8be9ee98c7d57bee6e498']); // define custom card renderer and assign content
- // and event listeners inside function
- function cardRenderer(record, cellDOMRef, cellRef) {
- const dogBreeds = [
- 'Cane Corso',
- 'Pug',
- 'Corgi',
- 'Pomeranian',
- 'Great Dane',
- 'Frenchie',
- ];
-
- // get reference to select dropdown
- const selectDropdown = cellDOMRef.querySelector('select');
-
- // sort breeds and populate select dropdown
- dogBreeds.sort().forEach(breed => {
- const breedOption = document.createElement('option');
- breedOption.textContent = breed;
- breedOption.value = breed;
- selectDropdown.appendChild(breedOption);
- });
-
- // add events in renderer as well
- selectDropdown.addEventListener('change', (e) => {
- const newType = e.target.value;
- alert(`Select dropdown changed to: ${newType}`);
- });
- }
- </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"></script>
- </head>
-
- <body>
- <!-- Most features can be toggled on the toplevel zing-grid tag -->
- <zing-grid caption="Custom Card Renderer" columns-control filter layout="card" layout-controls pager page-size="4" page-size-options="2,4,8,16" viewport-stop>
- <!-- dataset -->
- <zg-data data='[
- { "breed": "Cane Corso", "name": "Ziva"},
- { "breed": "Pug", "name": "Doug"},
- { "breed": "Corgi", "name": "Jenny"},
- { "breed": "Pomeranian", "name": "Koda"},
- { "breed": "Great Dane", "name": "Zeus"},
- { "breed": "Frenchie", "name": "Bruce"},
- { "breed": "Cane Corso", "name": "Sofia"},
- { "breed": "Pomeranian", "name": "Snowball"}
- ]'></zg-data>
-
- <!-- define custom card mode -->
- <zg-card renderer="cardRenderer">
- <div>
- <h2>[[record.breed]]</h2>
- <span>Name: [[record.name]]</span>
- <hr>
- <select>
- <option value="" disabled selected>Please Choose One</option>
- </select>
- </div>
- </zg-card>
- </zing-grid>
-
- </body>
-
- </html>
- body {
- background: #e6e6e6;
- }
- // define custom card renderer and assign content
- // and event listeners inside function
- function cardRenderer(record, cellDOMRef, cellRef) {
- const dogBreeds = [
- 'Cane Corso',
- 'Pug',
- 'Corgi',
- 'Pomeranian',
- 'Great Dane',
- 'Frenchie',
- ];
-
- // get reference to select dropdown
- const selectDropdown = cellDOMRef.querySelector('select');
-
- // sort breeds and populate select dropdown
- dogBreeds.sort().forEach(breed => {
- const breedOption = document.createElement('option');
- breedOption.textContent = breed;
- breedOption.value = breed;
- selectDropdown.appendChild(breedOption);
- });
-
- // add events in renderer as well
- selectDropdown.addEventListener('change', (e) => {
- const newType = e.target.value;
- alert(`Select dropdown changed to: ${newType}`);
- });
- }