easyUI 在主datagrid上创建子datagrid
2012-08-11 11:22 java线程例子 阅读(363) 评论(0) 编辑 收藏 举报@author YHC
使用datagrid详细视图,用户可以展开一行去显示一个附加的详细信息,任何类容可以加载作为行详细,subgrid(子datagrid)也可以动态加载.这个教程将向你展示如何创建一个子grid在主grid上.
步骤 1: 创建主要的 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>
步骤 2: 设置详细视图显示子grid
使用详细视图,切记引入view script js文件在你的页面的头部.<script type="text/javascript" src="http://www.jeasyui.com/easyui/datagrid-detailview.js"></script>
$('#dg').datagrid({ view: detailview, detailFormatter:function(index,row){ return '<div style="padding:2px"><table id="ddv-' + index + '"></table></div>'; }, onExpandRow: function(index,row){ $('#ddv-'+index).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事件将被触发,我们创建一个新的子grid和3列,记得调用fixDetailRowHeight方法对主grid,当子grid数据加载成功
之后改变大小.
步骤 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
$itemid = $_REQUEST['itemid']; include 'conn.php'; $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);
下载 EasyUI 示例代码: