easyUI 在主datagrid上创建子datagrid

@author YHC

使用datagrid详细视图,用户可以展开一行去显示一个附加的详细信息,任何类容可以加载作为行详细,subgrid(子datagrid)也可以动态加载.这个教程将向你展示如何创建一个子grid在主grid上.


查看 Demo

步骤 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 示例代码:










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值