Bootstrap Table 是前端开发中常用的数据表格插件,凭借分页、排序、搜索、数据请求等丰富功能,被广泛应用于后台管理系统、数据展示平台等项目中。默认情况下,Bootstrap Table 会根据 columns 配置自动生成表头,但在实际开发过程中,经常需要实现复杂表头、动态表头、多级表头、合并单元格等效果,这就需要掌握 Bootstrap Table 自定义表头的方法。
Bootstrap Table 表头结构简介
Bootstrap Table 的表头主要由 生成后的 HTML 结构类似: 如果只需要修改文字、宽度、排序方式等基础属性,直接通过 Bootstrap Table 最常见的自定义表头方式就是通过 常用属性包括: 如果需要动态生成表头内容,可以结合 JavaScript: 这种方式适合根据权限、语言环境、业务状态动态调整表头。 Bootstrap Table 支持通过 示例: 也可以通过 CSS: 实现统一样式控制。 当项目需要完全控制表头结构时,可以直接编写 HTML。 示例: 初始化: 这种方式适合表头固定、结构简单的页面。 后台报表中经常需要类似 Excel 的多级表头,例如: Bootstrap Table 可以通过嵌套 columns 实现。 示例: 生成效果: 这种方式非常适合统计报表、运营数据分析页面。 部分系统中的表头来自后台接口,例如: 用户自定义字段 数据库动态字段 不同角色展示不同列 可以通过 Ajax 获取表头后初始化。 示例: 后台返回: 这样可以实现真正意义上的动态表格。 Bootstrap Table 提供了丰富事件,可以在加载完成后修改表头。 例如: 添加 Tooltip 修改文本 增加图标 调整样式 默认情况下 Bootstrap Table 会自动添加排序功能: 如果需要自定义排序提示,可以结合 CSS: 或者通过 formatter、事件方式增加自定义图标。 复杂报表通常需要 rowspan 和 colspan。 示例: 也可以通过 HTML: 实现跨行和跨列显示。 可能原因: columns 配置格式错误 field 名称和数据字段不一致 初始化顺序错误 检查: 确认配置是否正确。 如果修改 columns 后没有更新,可以销毁重新初始化: 通常是因为: colspan 设置错误 columns 层级数量不匹配 固定列插件影响 建议检查每一级 columns 数量是否对应。 实际项目开发中,自定义表头建议遵循以下原则: 普通列表展示直接使用: 维护成本最低。 统计分析类页面推荐使用嵌套 columns,结构更加清晰。 后台返回字段时,需要确保: field 唯一 title 非空 数据类型匹配 避免出现表头显示异常。 不要大量通过 JavaScript 修改 CSS,建议: JS 控制结构 CSS 控制展示 方便后期维护。 Bootstrap Table 自定义表头主要有三种方式:通过 掌握 Bootstrap Table 表头自定义技巧,可以有效提升数据展示效果,让后台管理系统中的表格更加符合实际业务需求,同时提高页面交互体验和开发效率。columns 参数生成,每一个字段对应一个 标签。例如:
$('#table').bootstrapTable({
columns: [
{
field: 'name',
title: '姓名'
},
{
field: 'age',
title: '年龄'
}
]
});
姓名
年龄
columns 配置即可完成。但对于复杂业务场景,需要使用自定义表头方案。使用 columns 实现基础自定义表头
columns 设置。title 设置表头名称
columns: [
{
field: 'username',
title: '用户名称'
}
]title 控制显示在表头中的文字,可以根据业务需求修改。
formatter 自定义表头内容
var tableTitle = "员工信息";
$('#table').bootstrapTable({
columns: [
{
field: 'name',
title: tableTitle
}
]
});
设置表头样式
class 或 cellStyle 调整表头样式。columns: [
{
field: 'price',
title: '价格',
class: 'text-center'
}
].bootstrap-table th {
background-color: #f5f5f5;
font-weight: bold;
}使用 HTML 自定义 Bootstrap Table 表头
id="table">
data-field="id">编号
data-field="name">名称
data-field="status">状态
$('#table').bootstrapTable({
data: [
{
id:1,
name:'测试数据',
status:'正常'
}
]
});Bootstrap Table 多级表头实现方法
用户信息 销售数据 姓名 年龄 数量 金额 $('#table').bootstrapTable({
columns: [
{
title: '用户信息',
colspan: 2,
align: 'center',
columns: [
{
field: 'name',
title: '姓名'
},
{
field: 'age',
title: '年龄'
}
]
},
{
title: '销售数据',
colspan: 2,
align: 'center',
columns: [
{
field: 'count',
title: '数量'
},
{
field: 'money',
title: '金额'
}
]
}
]
});用户信息 销售数据
姓名 年龄 数量 金额动态生成 Bootstrap Table 表头
$.ajax({
url:'/getColumns',
success:function(result){
$('#table').bootstrapTable({
columns: result.columns,
data: result.data
});
}
});{
"columns":[
{
"field":"name",
"title":"姓名"
},
{
"field":"department",
"title":"部门"
}
]
}使用事件修改表头内容
$('#table').on('post-header.bs.table', function () {
$('.fixed-table-header th').each(function(){
$(this).attr('title','自定义提示');
});
});post-header.bs.table 会在表头生成完成后触发,可以用于:
自定义表头添加排序图标
$('#table').bootstrapTable({
sortable:true,
columns:[
{
field:'date',
title:'日期',
sortable:true
}
]
});.sortable {
cursor:pointer;
}Bootstrap Table 表头合并单元格
columns:[
{
title:'基础信息',
colspan:3,
align:'center'
}
] rowspan="2">编号
colspan="2">用户信息 自定义表头常见问题解决
表头没有显示
console.log(columns);
动态表头刷新无效
$('#table').bootstrapTable('destroy');
$('#table').bootstrapTable({
columns:newColumns,
data:data
});
多级表头错位
Bootstrap Table 自定义表头最佳实践
1. 简单页面优先使用 columns
columns:[
{
field:'name',
title:'名称'
}
]2. 复杂报表采用多级 columns
3. 动态字段做好数据校验
4. 样式与逻辑分离
总结
columns 配置生成表头、通过 HTML 手动定义表头、通过接口动态加载表头。对于简单数据列表,columns 配置即可满足需求;对于复杂业务报表,则可以结合多级 columns、colspan、rowspan 实现灵活布局。