jQuery EasyUI 数据网格 – 创建子网格
使用数据网格(datagrid)的详细视图,用户可以展开一行来显示附加的详细信息。
任何内容都可以加载作为行详细,子网格也可以动态加载。
本教程将向您展示如何在主网格上创建一个子网格。

步骤 1:创建主网格
<table 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>
步骤 2:设置详细视图来显示子网格
为了使用详细视图,请记得在页面头部引用视图脚本文件。
<script type=\"text/javascript\" src=\"http://www.w3cschool.cc/try/jeasyui/datagrid-detailview.js\"></script>
$(\'#dg\').datagrid({
view: detailview,
detailFormatter:function(index,row){
return \'<div style=\"padding:2px\"><table></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\’ 方法。
步骤 3:服务器端代码
datagrid22_getdata.php
$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);
datagrid22_getdetail.php
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);
下载 jQuery EasyUI 实例
jeasyui-datagrid-datagrid22.zip
点我分享笔记