The detail content can display any data in any format including another datagrid component. Please refer to this code.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>jQuery EasyUI</title>
<link rel="stylesheet" type="text/css" href="https://www.jeasyui.com/easyui/themes/default/easyui.css">
<script type="text/javascript" src="https://www.jeasyui.com/easyui/jquery.min.js"></script>
<script type="text/javascript" src="https://www.jeasyui.com/easyui/jquery.easyui.min.js"></script>
<script type="text/javascript" src="https://www.jeasyui.com/easyui/datagrid-scrollview.js"></script>
<script>
$(function(){
var rows = [];
for(var i=1; i<=8000; i++){
var amount = Math.floor(Math.random()*1000);
var price = Math.floor(Math.random()*1000);
rows.push({
inv: 'Inv No '+i,
date: $.fn.datebox.defaults.formatter(new Date()),
name: 'Name '+i,
amount: amount,
price: price,
cost: amount*price,
note: 'Note '+i
});
}
$('#dg').datagrid({
detailFormatter: function(rowIndex, rowData){
return '';
},
onExpandRow(index,row){
var dg = $(this);
var detail = dg.datagrid('getRowDetail', index);
if (!detail.hasClass('not-empty')){
detail.addClass('not-empty');
var data = [];
var len = Math.max(2,Math.floor(Math.random()*20));
for(var i=1; i<=len; i++){
data.push({
inv: row.inv,
val1: Math.floor(Math.random()*1000),
val2: Math.floor(Math.random()*1000)
})
}
var t = $('<table></table>').appendTo(detail).datagrid({
columns: [[
{field:'inv',title:'Inv No',width:100},
{field:'val1',title:'Value1',width:100,align:'right'},
{field:'val2',title:'Value2',width:100,align:'right'}
]],
data: data,
rownumbers: true,
onLoadSuccess: function(){
dg.datagrid('fixDetailRowHeight', index)
}
});
dg.datagrid('fixDetailRowHeight', index)
}
}
});
$('#dg').datagrid('loadData', rows);
});
</script>
</head>
<body>
<h1>DataGrid - VirtualScrollView with Detail Rows</h1>
<table id="dg" style="width:700px;height:250px"
title="DataGrid - VirtualScrollView with Detail Rows"
data-options="view:scrollview,rownumbers:true,singleSelect:true,autoRowHeight:false,pageSize:50">
<thead>
<tr>
<th field="inv" width="80">Inv No</th>
<th field="date" width="90">Date</th>
<th field="name" width="80">Name</th>
<th field="amount" width="80" align="right">Amount</th>
<th field="price" width="80" align="right">Price</th>
<th field="cost" width="90" align="right">Cost</th>
<th field="note" width="100">Note</th>
</tr>
</thead>
</table>
</body>
</html>