jQuery EasyUI Data Grid -Создать подтаблицу
Используя представление деталей таблицы данных, пользователи могут развернуть строку, чтобы отобразить дополнительную подробную информацию. В качестве деталей строки можно загрузить любое содержимое, а также можно динамически загружать подтаблицу. В этом руководстве показано, как создать подтаблицу в основной таблице.
Шаг 1: Создание основной таблицы
<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: Настройка представления деталей для отображения подтаблицы
Чтобы использовать представление деталей, не забудьте подключить файл скрипта представления в заголовке страницы.
<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 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' у основной таблицы.
Шаг 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
Другие расширения