bootstraptable父子级
时间: 2023-08-04 21:06:18 浏览: 110
Bootstraptable建立父子表
在 Bootstrap Table 中,可以使用 `data-parent-id` 和 `data-parent-field` 属性来实现表格数据的父子级关系。
1. 在数据中添加 `id` 和 `parent_id` 字段,用于标识节点的唯一标识和父节点的标识。
2. 在表格中添加 `data-parent-field="parent_id"` 属性,指定数据中父节点标识的字段名。
3. 在表格中添加 `data-id-field="id"` 属性,指定数据中唯一标识的字段名。
4. 在 `columns` 属性中,按照需要显示的列定义表格的列。
5. 在 `data` 属性中,指定表格要显示的数据。
6. 在 `onPostBody` 事件中,使用 JavaScript 对表格数据进行处理,生成父子级关系。
7. 在 `onExpandRow` 事件中,设置子表格的内容和参数。
下面是一个示例代码:
```html
<table id="myTable" data-toggle="table" data-parent-field="parent_id" data-id-field="id">
<thead>
<tr>
<th data-field="name">名称</th>
<th data-field="value">数值</th>
</tr>
</thead>
</table>
<script>
var data = [
{id: 1, parent_id: null, name: '节点1', value: 100},
{id: 2, parent_id: 1, name: '节点1.1', value: 50},
{id: 3, parent_id: 1, name: '节点1.2', value: 50},
{id: 4, parent_id: null, name: '节点2', value: 200},
{id: 5, parent_id: 4, name: '节点2.1', value: 100},
{id: 6, parent_id: 4, name: '节点2.2', value: 100},
];
$('#myTable').bootstrapTable({
columns: [{
field: 'name',
title: '名称'
}, {
field: 'value',
title: '数值'
}],
data: data,
onPostBody: function(data) {
var treeData = [];
var map = {};
for (var i = 0; i < data.length; i++) {
var node = data[i];
map[node.id] = i;
node.children = [];
}
for (var i = 0; i < data.length; i++) {
var node = data[i];
if (node.parent_id) {
data[map[node.parent_id]].children.push(node);
} else {
treeData.push(node);
}
}
$('#myTable').bootstrapTable('load', treeData);
},
onExpandRow: function(index, row, $detail) {
var subTable = $detail.html('<table></table>').find('table');
subTable.bootstrapTable({
columns: [{
field: 'name',
title: '名称'
}, {
field: 'value',
title: '数值'
}],
data: row.children
});
}
});
</script>
```
这样,就可以实现父子级关系的表格了。注意,在 `onPostBody` 事件中需要对数据进行处理,生成父子级关系,然后使用 `load` 方法重新加载表格数据。在 `onExpandRow` 事件中需要设置子表格的内容和参数。
阅读全文