bootstrap table detailView详情视图模式,当一个表格要显示很多列时(比如有20多列)通过电脑屏幕的宽度是一下子显示不了所有的列,这时有两种处理方法:
1,固定列模式,把重要的列固定其他列可以通过表格底部滚动条左右拖动查看。
2,detailView详情视图模式,只显示重要的列,当用户点击选中行时展开其他详情,有点类似树形控件的效果。
1,设置detailView为true
2,自定义detail-formatter函数detailFormatter
3,引用fontawesome图标库 https://use.fontawesome.com/releases/v5.6.3/css/all.css
//详情视图模式
$('#table').bootstrapTable({
detailView:true, //1,开启详情视树形图模式
detailFormatter:"detailFormatter", //2,定义详情显示函数
columns: columns,
data: data
});
//3, 定义详情显示函数
function detailFormatter(index, row) {
var html = []
$.each(row, function (key, value) {
html.push('<p><b>' + key + ':</b> ' + value + '</p>')
});
return html.join('');
}
该属性需要配合detailViewByClick为true来使用,detailViewByClick点击行展开详情,该属性在1.15以下版本无效。
$('#table').bootstrapTable({
detailView:true, //1,开启详情视树形图模式
detailFormatter:"detailFormatter", //2,定义详情显示函数
detailViewIcon:false,//3,隐藏图标列
detailViewByClick:true,//4,隐藏图标列
columns: columns,
data: data
});
可以定义一个自定义函数来控制那一行可以展开详情,比如下面的自定义函数来控制偶数行点击可以展开详情。
$('#table').bootstrapTable({
detailView:true,
detailFormatter:"detailFormatter",
detailFilter:detailFilter
columns: columns,
data: data
});
function detailFilter(index, row) {
return index % 2 === 0
}
官方并没有提供相关设置选项,但是我们可以通过以下方法间接实现
for(var i=0;i<行数;i++)
{
$('#table').bootstrapTable('toggleDetailView', i);//展开详情行
}