Bootstrap Table 实现Element UI 表格展开行效果
在使用Bootstrap时候,有时候表格要显示的内容过多,如果都显示的话,表格就会显得太长
在ElementUI中可以设置展开行,这样部分数据可以隐藏,需要的时候显示出来。
ElementUI table 展开显示效果:

Bootstrap 实现过程
实现效果:

1. 表格数据加载
2. 在表格加载之后为表格添加展开事件
代码如下:
var TableInit = function () {
var oTableInit = new Object();
//初始化Table
oTableInit.Init = function () {
$('#table').BootstrapTable({
url: '************', //请求后台的URL(*)
method: 'post', //请求方式(*)
toolbar: '#toolbar', //工具按钮用哪个容器
striped: false, //是否显示行间隔色
cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
pagination: true, //是否显示分页(*)
sortable: false, //是否启用排序
sortOrder: "asc", //排序方式
queryParams: oTableInit.queryParams,//传递参数(*)
sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
pageNumber: 1, //初始化加载第一页,默认第一页
pageSize: 10, //每页的记录行数(*)
pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
strictSearch: true,
showColumns: false, //是否显示所有的列
showRefresh: false, //是否显示刷新按钮
minimumCountColumns: 2, //最少允许的列数
clickToSelect: true, //是否启用点击选中行
uniqueId: "ID", //每一行的唯一标识,一般为主键列
showToggle: false, //是否显示详细视图和列表视图的切换按钮
cardView: false, //是否显示详细视图
detailView: false, //是否显示父子表
columns: [{
checkbox: true
}, {
field: 'Expand',
name: 'Expand',
align: table_align,
title: ' ',
class: 'expand-column',
formatter: function (value, row, index) {
return '<i class="fa fa-chevron-right expand-row" aria-hidden="true" style="color:gray"></i> ';
}
}, {
field: 'Column1',
name: 'Column1',
align: table_align,
title: '列1',
class: 'expand-first-column',
events: detailOperateEvents
}, {
field: 'Column2',
name: 'Column2',
align: table_align,
title: '列2'
}, {
field: 'Column3',
name: 'Column3',
align: table_align,
title: '列3'
}, {
field: 'Column4',
name: 'Column4',
align: table_align,
title: '列4'
}, {
field: 'Column5',
name: 'Column5',
align: table_align,
title: '列5'
}, {
field: 'Column6',
name: 'Column6',
align: table_align,
visible: false,
title: '列6'
}, {
field: 'Column7',
name: 'Column7',
align: table_align,
title: '列7'
}, {
field: 'operate',
title: '操作',
align: 'center',
events: operateEvents,
width: '10%',
formatter: operateFormatter
}],
onLoadSuccess: function () {
// 初始化展开按钮
expandRow();
}
});
};
//得到查询的参数
oTableInit.queryParams = function (params) {
var temp = {
pageSize: params.limit, //页面大小
pageIndex: params.offset / params.limit + 1 //页码
};
return temp;
};
return oTableInit;
};
expandRow 方法
// 展开行
function expandRow() {
$('.expand-row').click(function (e) {
var row = e.target.parentElement.parentElement;
var id = row.dataset.uniqueid;
// 如果是展开操作
if (row.dataset.expand == undefined || row.dataset.expand == 'false') {
$(this).removeClass('fa-chevron-right');
$(this).addClass('fa-chevron-down');
row.dataset.expand = true;
// 获取行信息
var rowInfo = $("#table").bootstrapTable('getRowByUniqueId', id);
// 创建行
var tr = '<tr>';
tr += '<td colspan="11">';
tr += '<div>';
tr += '<div class="table-item"><label>隐藏列1:</label><div class="table-item__content">' + rowInfo.CloumnA+ '</div></div>';
tr += '<div class="table-item"><label>隐藏列2:</label><div class="table-item__content">' + rowInfo.CloumnB+ '</div></div>';
tr += '</div>';
tr += '</td>';
tr += '</tr>';
$(row).after(tr);
} else {
// 如果是收缩操作
$(this).addClass('fa-chevron-right');
$(this).removeClass('fa-chevron-down');
row.dataset.expand = false;
var rowIndex = row.rowIndex;
$('#tb_main')[0].deleteRow(rowIndex + 1);
}
});
}
style 样式:
.expand-column{
border-right:none !important;
}
.expand-first-column{
border-left:none !important;
}
.table-item{
display: flex;
margin-left:5%;
margin-bottom:5px;
}
.table-item>label{
width:100px;
color: dimgrey;
}
.table-item__content {
font-size: 14px;
word-break: break-all;
}

浙公网安备 33010602011771号