JavaScript Grid

Bind to the groupexpand event by type: jqxGrid. Author: http://jqwidgets.com

HTML

<script src="https://jqwidgets.com/public/jqwidgets/jqx-all.js"></script>
<link rel="stylesheet" href="https://jqwidgets.com/public/jqwidgets/styles/jqx.base.css">
<link rel="stylesheet" href="https://jqwidgets.com/public/jqwidgets/styles/jqx.energyblue.css">
<script src="https://jqwidgets.com/jquery-widgets-demo/demos/jqxgrid/generatedata.js"></script>
Expand a group
<div id='jqxWidget'>
   <div id="jqxgrid"></div>
</div>

JavaScript

var data = generatedata(500);
 var source = {
    localdata: data,
    datafields: [{
       name: 'firstname',
       type: 'string'
    }, {
       name: 'lastname',
       type: 'string'
    }, {
       name: 'productname',
       type: 'string'
    }, {
       name: 'date',
       type: 'date'
    }, {
       name: 'quantity',
       type: 'number'
    }, {
       name: 'price',
       type: 'number'
    }],
    datatype: "array"
 };

 var adapter = new $.jqx.dataAdapter(source);
 $("#jqxgrid").jqxGrid({
    width: 500,
    theme: 'energyblue',
    source: adapter,
    groupable: true,
    groups: ['firstname', 'lastname', 'productname'],
    sortable: true,
    columns: [{
       text: 'First Name',
       datafield: 'firstname',
       columngroup: 'Name',
       width: 90
    }, {
       text: 'Last Name',
       columngroup: 'Name',
       datafield: 'lastname',
       width: 90
    }, {
       text: 'Product',
       datafield: 'productname',
       width: 170
    }, {
       text: 'Order Date',
       datafield: 'date',
       width: 160,
       cellsformat: 'dd-MMMM-yyyy'
    }, {
       text: 'Quantity',
       datafield: 'quantity',
       width: 80,
       cellsalign: 'right'
    }, {
       text: 'Unit Price',
       datafield: 'price',
       cellsalign: 'right',
       cellsformat: 'c2'
    }]
 });
 $('#jqxgrid').on('groupexpand', function(event) {
    var args = event.args;
    var level = args.level;

    console.log(args, 'level: ' + level)
 });