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
点我分享笔记