• Edit
  • Download
    1. <!DOCTYPE html>
    2. <html>
    3.  
    4. <head>
    5. <meta charset="utf-8">
    6. <title>ZingGrid Demo</title>
    7. <script nonce="undefined" src="https://cdn.zinggrid.com/zinggrid.min.js"></script>
    8. <style>
    9. html,
    10. body {
    11. height: 100%;
    12. width: 100%;
    13. margin: 0;
    14. padding: 0;
    15. }
    16.  
    17. zg-caption h1 {
    18. font-size: 2rem;
    19. }
    20.  
    21. zg-caption p {
    22. font-size: 1rem;
    23. }
    24.  
    25. zg-head {
    26. font-size: 1.3rem;
    27. }
    28.  
    29. zing-grid {
    30. margin-top: 1rem;
    31. }
    32.  
    33. zing-grid[loading] {
    34. height: 701px;
    35. }
    36. </style>
    37. </head>
    38.  
    39. <body>
    40. <h3>`[filter-on]` sets if filter comparison should be against the raw or rendered values.</h3>
    41. <p>To test this feature out, use the "Rendered item names" color and filter for "Item: ".</p>
    42. <p>It should only dispaly results when filtering on "rendered" values.</p>
    43. <select>
    44. <option value="raw">raw</option>
    45. <option value="rendered" selected>rendered</option>
    46. </select>
    47. <zing-grid caption="Store Items (HTML example w/ one unfilter column)" filter="both" filter-on="rendered">
    48. <zg-colgroup>
    49. <zg-column index="item,color,size" header="Rendered item names" renderer="renderItemName"></zg-column>
    50. <zg-column index="item" header="Item"></zg-column>
    51. <zg-column index="color" header="Color"></zg-column>
    52. <zg-column index="size" header="Size"></zg-column>
    53. <zg-column index="price" header="Price" filter="disabled" type="currency" type-currency="USD"></zg-column>
    54. </zg-colgroup>
    55. <zg-data data='[{
    56. "item": "shirt",
    57. "color": "red",
    58. "size": "medium",
    59. "price": "5"
    60. }, {
    61. "item": "hat",
    62. "color": "brown",
    63. "size": "na",
    64. "price": "10"
    65. }, {
    66. "item": "shirt",
    67. "color": "blue",
    68. "size": "small",
    69. "price": "5"
    70. }, {
    71. "item": "jeans",
    72. "color": "blue",
    73. "size": "large",
    74. "price": "25"
    75. }, {
    76. "item": "scarf",
    77. "color": "purple",
    78. "size": "na",
    79. "price": "12"
    80. }, {
    81. "item": "shirt",
    82. "color": "pink",
    83. "size": "medium",
    84. "price": "14"
    85. }, {
    86. "item": "jeans",
    87. "color": "black",
    88. "size": "large",
    89. "price": "40"
    90. }, {
    91. "item": "jacket",
    92. "color": "black",
    93. "size": "medium",
    94. "price": "100"
    95. }, {
    96. "item": "jeans",
    97. "color": "red",
    98. "size": "small",
    99. "price": "35"
    100. }, {
    101. "item": "shirt",
    102. "color": "yellow",
    103. "size": "medium",
    104. "price": "16"
    105. }, {
    106. "item": "jacket",
    107. "color": "red",
    108. "size": "large",
    109. "price": "30"
    110. }]'></zg-data>
    111. </zing-grid>
    112. <script>
    113. ZingGrid.setLicense(['26ccbfec16b8be9ee98c7d57bee6e498']); // Custom renderer
    114. function renderItemName(item, color, size) {
    115. return `Item: ${size !== 'na' ? `${size} ` : ''}${color} ${item}`;
    116. };
    117. ZingGrid.registerMethod('renderItemName', renderItemName);
    118. // window:load event for Javascript to run after HTML
    119. // because this Javascript is injected into the document head
    120. window.addEventListener('load', () => {
    121. // Javascript code to execute after DOM content
    122. const selectRef = document.querySelector('select');
    123. const zgRef = document.querySelector('zing-grid');
    124. selectRef.addEventListener('change', e => {
    125. zgRef.setAttribute('filter-on', e.target.value);
    126. });
    127. });
    128. </script>
    129. </body>
    130.  
    131. </html>
    1. <!DOCTYPE html>
    2. <html>
    3.  
    4. <head>
    5. <meta charset="utf-8">
    6. <title>ZingGrid Demo</title>
    7. <script src="https://cdn.zinggrid.com/zinggrid.min.js"></script>
    8. </head>
    9.  
    10. <body>
    11. <h3>`[filter-on]` sets if filter comparison should be against the raw or rendered values.</h3>
    12. <p>To test this feature out, use the "Rendered item names" color and filter for "Item: ".</p>
    13. <p>It should only dispaly results when filtering on "rendered" values.</p>
    14. <select>
    15. <option value="raw">raw</option>
    16. <option value="rendered" selected>rendered</option>
    17. </select>
    18. <zing-grid caption="Store Items (HTML example w/ one unfilter column)" filter="both" filter-on="rendered">
    19. <zg-colgroup>
    20. <zg-column index="item,color,size" header="Rendered item names" renderer="renderItemName"></zg-column>
    21. <zg-column index="item" header="Item"></zg-column>
    22. <zg-column index="color" header="Color"></zg-column>
    23. <zg-column index="size" header="Size"></zg-column>
    24. <zg-column index="price" header="Price" filter="disabled" type="currency" type-currency="USD"></zg-column>
    25. </zg-colgroup>
    26. <zg-data data='[{
    27. "item": "shirt",
    28. "color": "red",
    29. "size": "medium",
    30. "price": "5"
    31. }, {
    32. "item": "hat",
    33. "color": "brown",
    34. "size": "na",
    35. "price": "10"
    36. }, {
    37. "item": "shirt",
    38. "color": "blue",
    39. "size": "small",
    40. "price": "5"
    41. }, {
    42. "item": "jeans",
    43. "color": "blue",
    44. "size": "large",
    45. "price": "25"
    46. }, {
    47. "item": "scarf",
    48. "color": "purple",
    49. "size": "na",
    50. "price": "12"
    51. }, {
    52. "item": "shirt",
    53. "color": "pink",
    54. "size": "medium",
    55. "price": "14"
    56. }, {
    57. "item": "jeans",
    58. "color": "black",
    59. "size": "large",
    60. "price": "40"
    61. }, {
    62. "item": "jacket",
    63. "color": "black",
    64. "size": "medium",
    65. "price": "100"
    66. }, {
    67. "item": "jeans",
    68. "color": "red",
    69. "size": "small",
    70. "price": "35"
    71. }, {
    72. "item": "shirt",
    73. "color": "yellow",
    74. "size": "medium",
    75. "price": "16"
    76. }, {
    77. "item": "jacket",
    78. "color": "red",
    79. "size": "large",
    80. "price": "30"
    81. }]'></zg-data>
    82. </zing-grid>
    83. </body>
    84.  
    85. </html>
    1. html,
    2. body {
    3. height: 100%;
    4. width: 100%;
    5. margin: 0;
    6. padding: 0;
    7. }
    8.  
    9. zg-caption h1 {
    10. font-size: 2rem;
    11. }
    12.  
    13. zg-caption p {
    14. font-size: 1rem;
    15. }
    16.  
    17. zg-head {
    18. font-size: 1.3rem;
    19. }
    20.  
    21. zing-grid {
    22. margin-top: 1rem;
    23. }
    1. // Custom renderer
    2. function renderItemName(item, color, size) {
    3. return `Item: ${size !== 'na' ? `${size} ` : ''}${color} ${item}`;
    4. };
    5. ZingGrid.registerMethod('renderItemName', renderItemName);
    6. // window:load event for Javascript to run after HTML
    7. // because this Javascript is injected into the document head
    8. window.addEventListener('load', () => {
    9. // Javascript code to execute after DOM content
    10. const selectRef = document.querySelector('select');
    11. const zgRef = document.querySelector('zing-grid');
    12. selectRef.addEventListener('change', e => {
    13. zgRef.setAttribute('filter-on', e.target.value);
    14. });
    15. });