It’s possible to perform math operation on numeric columns with a little bit help from Javascript and “jqGridLoadComplete” event handler.
It’s important to set “footerrow” to true first.
PHP
1 |
Javascript:
1 2 | var colSum = $('#customers').jqGrid('getCol', 'creditLimit', false, 'sum'); // other options are: avg, count $('#customers').jqGrid('footerData', 'set', { state: 'Total:', 'creditLimit': colSum }); |
The supported math operations are:
- sum
- count
By using sum and count, one can also obtain the avg using sum divided by count.
Complete Code Sample:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | // Always include namespace and conf.php on TOP of the script. use phpCtrl\C_DataGrid; require_once("/path/to/conf.php"); $dg = new C_DataGrid('SELECT customerName, city, state, creditLimit FROM customers', 'customerName', 'customers'); $dg->set_grid_property(array("footerrow"=>true)); $loadComplete = <<<LOADCOMPLETE function () { var colSum = $('#customers').jqGrid('getCol', 'creditLimit', false, 'sum'); var reccount = jQuery("#customers").jqGrid('getGridParam', 'reccount'); var avg = Math.round(colSum/reccount * 100/100); $('#customers').jqGrid('footerData', 'set', { state: 'Total:', 'creditLimit': colSum }); } LOADCOMPLETE; $dg->add_event("jqGridLoadComplete", $loadComplete); $dg -> display(); |