jQuery EasyUI使用教程之创建具有主数据网格的子网格

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

在数据网格中扩展行显示详细信息
Step 1:创建主数据网格
1
2
3
4
5
6
7
8
9
10
11
12
< 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 >
Step 2:设置详细视图显示子网格

为了使用详细视图,请记得在页面头部引用视图脚本文件。

1
< script type = "text/javascript" src = "http://www.jeasyui.com/easyui/datagrid-detailview.js" ></ script >
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$( '#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' 方法。

Step 3:服务器端代码

datagrid22_getdata.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$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 );

下载EasyUI示例:easyui-datagrid-demo.zip

有兴趣的朋友可以点击查看更多有关jQuery EasyUI的教程>>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值