使用数据网格(datagrid)的详细视图,用户可以展开一行来显示附加的详细信息。 任何内容都可以加载作为行详细,子网格也可以动态加载。 本教程将向您展示如何在主网格上创建一个子网格。
<table id="dg" style="width:700px;height:250px" url="datagrid22_getdata.php" title="DataGrid - SubGrid" singleSelect="true" fitColumns="true">
<thead>
<tr>
<th field="itemid" width="80">Item ID</th>
<th field="productid" width="100">Product ID</th>
<th field="listprice" align="right" width="80">List Price</th>
<th field="unitcost" align="right" width="80">Unit Cost</th>
<th field="attr1" width="220">Attribute</th>
<th field="status" width="60" align="center">Status</th></tr>
</thead>
</table>
为了使用详细视图,请记得在页面头部引用视图脚本文件。
<script type="text/javascript" src="http://edu.jb51.net/try/jeasyui/datagrid-detailview.js"></script>
$('#dg').datagrid({
view: detailview,
detailFormatter: function(index, row) {
return '<div style="padding:2px"><table class="ddv"></table></div>';
},
onExpandRow: function(index, row) {
var ddv = $(this).datagrid('getRowDetail', index).find('table.ddv');
ddv.datagrid({
url: 'datagrid22_getdetail.php?itemid=' + row.itemid,
fitColumns: true,
singleSelect: true,
rownumbers: true,
loadMsg: '',
height: 'auto',
columns: [[{
field: 'orderid',
title: 'Order ID',
width: 100
},
{
field: 'quantity',
title: 'Quantity',
width: 100
},
{
field: 'unitprice',
title: 'Unit Price',
width: 100
}]],
onResize: function() {
$('#dg').datagrid('fixDetailRowHeight', index);
},
onLoadSuccess: function() {
setTimeout(function() {
$('#dg').datagrid('fixDetailRowHeight', index);
},
0);
}
});
$('#dg').datagrid('fixDetailRowHeight', index);
}
});
当用户点击展开按钮('+')时,'onExpandRow' 事件将被触发。 我们创建一个新的带有三列的子网格。 当子网格数据加载成功时或者改变尺寸大小时,请记得对主网格调用 'fixDetailRowHeight' 方法。
$result = array();
include 'conn.php';
$rs = mysql_query("select * from item where itemid in (select itemid from lineitem)");
$items = array();
while ($row = mysql_fetch_object($rs)) {
array_push($items, $row);
}
echo json_encode($items);
include 'conn.php';
$itemid = mysql_real_escape_string($_REQUEST['itemid']);
$rs = mysql_query("select * from lineitem where itemid='$itemid'");
$items = array();
while ($row = mysql_fetch_object($rs)) {
array_push($items, $row);
}
echo json_encode($items);