因为项目需求,需要将后台生成的json数据动态生成表头,返回的数据是数组格式,将数组里面的对象依次显示到表头,有些数组的对象很多,就产生横向滚动显示和表头固定纵向滚动显示数据的需求,本来自己用js实现了,但是原生的table导致表头不能固定,就算固定了表头和内容不能对齐的问题,于是还是使用bootstrap的table组件。
html:
<div style="border: 1px solid #e2e2e2;margin-bottom: 30px;">
//data-height设置表格高度-固定表头生效
<table id="tableForm" class="table-container" data-height="500">
</table>
</div>
js:
function getColumns() {
// 加载动态表格
$.ajax({
url: "/data1.json",
type: 'get',
dataType: "json",
async: false,
success: function (returnValue) {
var myColumns = [];
if (returnValue.code == "0") {
var arr = returnValue.data;
// 遍历第一条数据的对象作表头
for (const key in arr[0]) {
myColumns.push({
"field": key,
"title": key,
"align": 'center',
"valign": 'middle'
});
};
}
console.log(myColumns);
$("#tableForm").bootstrapTable(
{
data: returnValue.data, // 表格数据
columns: myColumns,
}
);
}
})
}
data1.json:
{
"code": 0,
"data": [{
"sysCode": "1004",
"sysName": "",
"devCode": "",
"devName": "",
"paramName": "alarmState",
"paramVal": "0",
"exceptionType": 0,
"exceptionMsg": "通信失败",
"exceptionLevel": 1,
"recordTime": "",
"dist1111": "11111",
"dist2222": "22222",
"dist3333": "33333",
"dist4444": "44444",
"dist5555": "55555",
"dist6666": "66666",
"dist7777": "77777",
"dist8888": "88888"
}, {
"sysCode": "1004",
"sysName": "",
"devCode": "",
"devName": "",
"paramName": "alarmState",
"paramVal": "0",
"exceptionType": 0,
"exceptionMsg": "通信失败",
"exceptionLevel": 1,
"recordTime": "",
"dist1111": "11111",
"dist2222": "22222",
"dist3333": "33333",
"dist4444": "44444",
"dist5555": "55555",
"dist6666": "66666",
"dist7777": "77777",
"dist8888": "88888"
}]
}