experiment_id: web-retrieval-v1
fixture_id: /demos/web-component-grid-custom-nested-headers
mode: provenance
representation: html
origin_response_id: 95508085a3f4886b290f55f10948b5f0
version: 2026-10-21
version_created_at_utc: 2026-10-21T20:42:35.565Z
version_nonce: c0bc343a6a44da639fc6a3c739ccf5bb
generated_at_utc: 2026-10-25T01:38:40.532Z
response_nonce: 01462c22dca8c4b991f2ca1666ee13d2

User Defined Nested Headers

29 of 125
You can define your own nested headers by using dot notation to delimit what path we should use in your object chain: header="Player Info.Custom Shared Header".
Result Full HTML CSS JS
Edit Download

Full Code

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>ZingGrid: Simple Grid</title>
  <script nonce="undefined" src="https://cdn.zinggrid.com/zinggrid.min.js"></script>
  <style>
    .zg-body {
      background: #e6e6e6;
    }

    zing-grid[loading] {
      height: 413px;
    }
  </style>
</head>

<body class="zg-body">
  <zing-grid caption="EPL Top Scorers" layout="row" layout-controls="disabled" viewport-stop>
    <zg-data data='[
        {
        	"playerInfo": {
            "name": "Eden Hazard",
            "club": "Chelsea",
          	"goals": 5      
        	}              
        },
        {
          "playerInfo": {
          	"name": "Aleksandar Mitrovic",
          	"club": "Fulham",
          	"goals": 5 
          }
        },
        {
        	"playerInfo": {              
          	"name": "Sergio Agüero",
          	"club": "Manchester City",
          	"goals": 4   
					}
        },
        {
        	"playerInfo": {  
          	"name": "Romelu Lukaku",
          	"club": "Manchester United",
          	"goals": 4
          }
        },
        {
        	"playerInfo": {  
          	"name": "Sadio Mané",
          	"club": "Liverpool",
          	"goals": 4   
          }
        }
      ]'></zg-data>
    <zg-colgroup>
      <zg-column index="playerInfo.goals" header="Player Info.Custom Shared Header"></zg-column>
      <zg-column index="playerInfo.name" header="Player Info.Custom Shared Header"></zg-column>
      <zg-column index="playerInfo.name" header="Name"></zg-column>
      <zg-column index="playerInfo.club"></zg-column>
    </zg-colgroup>
  </zing-grid>
  <script>
    ZingGrid.setLicense(['26ccbfec16b8be9ee98c7d57bee6e498']);
  </script>
</body>

</html>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>ZingGrid: Simple Grid</title>
    <script src="https://cdn.zinggrid.com/zinggrid.min.js"></script>
  </head>
  <body class="zg-body">
    <zing-grid 
      caption="EPL Top Scorers"
      layout="row"
      layout-controls="disabled"
      viewport-stop>
      <zg-data 
        data='[
        {
        	"playerInfo": {
            "name": "Eden Hazard",
            "club": "Chelsea",
          	"goals": 5      
        	}              
        },
        {
          "playerInfo": {
          	"name": "Aleksandar Mitrovic",
          	"club": "Fulham",
          	"goals": 5 
          }
        },
        {
        	"playerInfo": {              
          	"name": "Sergio Agüero",
          	"club": "Manchester City",
          	"goals": 4   
					}
        },
        {
        	"playerInfo": {  
          	"name": "Romelu Lukaku",
          	"club": "Manchester United",
          	"goals": 4
          }
        },
        {
        	"playerInfo": {  
          	"name": "Sadio Mané",
          	"club": "Liverpool",
          	"goals": 4   
          }
        }
      ]'></zg-data>
      <zg-colgroup>
        <zg-column index="playerInfo.goals" header="Player Info.Custom Shared Header"></zg-column>
        <zg-column index="playerInfo.name" header="Player Info.Custom Shared Header"></zg-column>
        <zg-column index="playerInfo.name" header="Name"></zg-column>
        <zg-column index="playerInfo.club"></zg-column>
      </zg-colgroup>
    </zing-grid>
  </body>
</html>
.zg-body {background:#e6e6e6;}
// No JS code

Interested in this demo? Modify it to your needs in ZingSoft Studio, our testing sandbox. It's free to sign up, and you can come back and edit at any time!

Edit in Studio

Demo Gallery