easyui grid = datagrid('#datagrid' 父子table
时间: 2023-12-24 15:04:59 浏览: 31
EasyUI的DataGrid组件是一个非常常用的数据列表展示组件。关于“父子table”的问题,不太清楚你具体指的是什么,但是DataGrid组件支持嵌套子表格,可以通过设置子表格的属性来实现。具体步骤如下:
1. 在DataGrid中定义一个列为“subdg”,用来放置子表格。
2. 通过formatter属性来设置subdg列的显示内容,一般使用一个按钮或者图标来表示展开子表格的操作。
3. 在formatter中绑定一个事件,用来处理展开子表格的逻辑。
4. 在子表格中定义一个与父表格相关联的字段,一般使用rowIndex或者id等来表示。
5. 使用loadFilter属性来定义数据过滤器,用来处理父子表格数据的关系。
下面是一个示例代码,可以参考一下:
```javascript
$('#datagrid').datagrid({
url: 'data.json',
columns: [[
{field:'id',title:'ID',width:100},
{field:'name',title:'Name',width:100},
{field:'subdg',title:'Details',width:100,formatter: function(value,row,index){
return '<a href="#" class="easyui-linkbutton" onclick="showDetails('+index+')">Show Details</a>';
}}
]],
loadFilter: function(data){
//处理数据,将子表格数据装配到父表格中
$.each(data.rows, function(i, row){
row.subdg = '<table><tr><td>ID:</td><td>'+row.id+'</td></tr><tr><td>Name:</td><td>'+row.name+'</td></tr></table>';
});
return data;
}
});
function showDetails(index){
$('#datagrid').datagrid('expandRow',index);
var subdg = $('#datagrid').datagrid('getRowDetail',index).find('table');
subdg.datagrid({
url: 'data.json?parentId='+index,
columns: [[
{field:'id',title:'ID',width:100},
{field:'name',title:'Name',width:100},
]],
onLoadSuccess:function(data){
//处理数据,将子表格数据装配到父表格中
var parentRow = $('#datagrid').datagrid('getRows')[index];
parentRow.subdg = subdg;
$('#datagrid').datagrid('collapseRow',index).datagrid('expandRow',index);
}
});
}
```
希望能够帮到你!