Subgrid
Subgrid
Single Subgrid
Setting subGrid to true will enable subgrid. When clicking + icon on parent grid, it will try to load url defined in subgridurl. By default 'rowid' (PK) of parent is passed. subgridparams holds comma sep. fields that will be POSTed from parent grid to subgrid. They can be read using $_POST in subgrid.
$opt["subGrid"] = true;
$opt["subgridurl"] = "subgrid_detail.php";
$opt["subgridparams"] = "name,gender,company"; // no spaces b/w column names
On subgrid, data can be fetched and passed in SQL
$c_id = $_REQUEST["rowid"];
$g->select_command = "SELECT concat(id,'-',num) as `key`, i.*
FROM invlines i WHERE id = $c_id";
For extra params passed from parent other than rowid (e.g. company), we need some persistent storage in session for ajax calls
if (!empty($_POST["company"]))
$_SESSION["company"] = $_POST['company'];
$company = $_SESSION['company'];
Resources
- Sample Code
- See Live Demo
- You can check this demo in archive
demos/master-detail/subgrid.php
Multiple Subgrid at same level
To define multiple subgrid at same level, just render 2 grids in detail grid page. Rest process will be same as above subgrid.
$g = new jqgrid();
// ...
$out1 = $g->render('list1');
$g = new jqgrid();
// ...
$out2 = $g->render('list2');
echo "<fieldset><legend>First Grid</legend>$out</fieldset>";
echo "<fieldset><legend>Second Grid</legend>$out2</fieldset>";
Resources
- Parent Grid Code
- Detail Grid Code
- See Live Demo
- You can check this demo in archive
demos/master-detail/multi-subgrid.php

