在当今的前端开发领域,表格是展示数据的重要方式之一。Bootstrap-Table 是一个基于 Bootstrap 的表格插件,它可以帮助开发者轻松地创建出样式优美、功能丰富的表格。本文将为你介绍 Bootstrap-Table 的基本使用方法,并提供一些实用的 JavaScript 应用技巧和实例。
一、Bootstrap-Table 简介
Bootstrap-Table 是一个基于 Bootstrap 的表格插件,它支持多种浏览器,并且易于集成。它具有以下特点:
- 基于 Bootstrap 的样式
- 支持多种数据源
- 支持多种排序和过滤功能
- 支持自定义单元格样式
- 支持分页、搜索、导出等功能
二、Bootstrap-Table 基本使用
1. 引入 Bootstrap 和 Bootstrap-Table
首先,你需要引入 Bootstrap 和 Bootstrap-Table 的 CSS 和 JS 文件。可以通过 CDN 引入,也可以下载到本地。
<!-- 引入 Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap/dist/css/bootstrap.min.css">
<!-- 引入 Bootstrap-Table CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table/dist/bootstrap-table.min.css">
<!-- 引入 jQuery -->
<script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
<!-- 引入 Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap/dist/js/bootstrap.min.js"></script>
<!-- 引入 Bootstrap-Table JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap-table/dist/bootstrap-table.min.js"></script>
2. 创建表格
接下来,你可以创建一个表格,并使用 bootstrap-table 类来初始化它。
<table id="table" class="table table-bordered table-hover table-striped">
<thead>
<tr>
<th data-field="id">ID</th>
<th data-field="name">姓名</th>
<th data-field="age">年龄</th>
</tr>
</thead>
</table>
3. 初始化表格
最后,使用 bootstrapTable 方法来初始化表格。
$(function () {
$('#table').bootstrapTable({
url: 'data.json', // 数据源地址
method: 'get', // 请求方式
contentType: 'application/json', // 请求内容类型
dataField: 'data', // 数据字段
columns: [{
field: 'id',
title: 'ID'
}, {
field: 'name',
title: '姓名'
}, {
field: 'age',
title: '年龄'
}]
});
});
三、Bootstrap-Table JavaScript 应用技巧
1. 自定义单元格样式
你可以通过 cellStyle 属性来自定义单元格样式。
$('#table').bootstrapTable({
...
cellStyle: function (value, row, index, field) {
if (value < 18) {
return {
classes: 'text-danger'
};
}
return {};
}
});
2. 自定义工具栏
你可以通过 toolbar 属性来添加自定义工具栏。
$('#table').bootstrapTable({
...
toolbar: '#toolbar',
...
});
然后,创建一个工具栏的 HTML 结构。
<div id="toolbar">
<button class="btn btn-primary" onclick="addRow()">添加行</button>
</div>
最后,编写添加行的 JavaScript 函数。
function addRow() {
var data = {
id: 1,
name: '张三',
age: 20
};
$('#table').bootstrapTable('insertRow', {
index: 0,
row: data
});
}
3. 数据排序和过滤
Bootstrap-Table 支持对数据进行排序和过滤。你可以通过 sortName 和 sortOrder 属性来设置排序字段和排序方式。
$('#table').bootstrapTable({
...
sortName: 'age',
sortOrder: 'asc',
...
});
同时,你可以通过 filter 属性来添加过滤功能。
$('#table').bootstrapTable({
...
filter: {
name: {
type: 'input',
operator: 'eq',
value: ''
}
},
...
});
四、实例
以下是一个使用 Bootstrap-Table 的实例,展示了一个包含排序、过滤和自定义单元格样式的表格。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Bootstrap-Table 实例</title>
<!-- 引入 Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap/dist/css/bootstrap.min.css">
<!-- 引入 Bootstrap-Table CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-table/dist/bootstrap-table.min.css">
</head>
<body>
<div class="container">
<table id="table" class="table table-bordered table-hover table-striped">
<thead>
<tr>
<th data-field="id">ID</th>
<th data-field="name">姓名</th>
<th data-field="age">年龄</th>
</tr>
</thead>
</table>
</div>
<!-- 引入 jQuery -->
<script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
<!-- 引入 Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap/dist/js/bootstrap.min.js"></script>
<!-- 引入 Bootstrap-Table JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap-table/dist/bootstrap-table.min.js"></script>
<script>
$(function () {
$('#table').bootstrapTable({
url: 'data.json',
method: 'get',
contentType: 'application/json',
dataField: 'data',
columns: [{
field: 'id',
title: 'ID'
}, {
field: 'name',
title: '姓名'
}, {
field: 'age',
title: '年龄'
}],
cellStyle: function (value, row, index, field) {
if (value < 18) {
return {
classes: 'text-danger'
};
}
return {};
},
sortName: 'age',
sortOrder: 'asc',
filter: {
name: {
type: 'input',
operator: 'eq',
value: ''
}
}
});
});
</script>
</body>
</html>
在这个实例中,我们创建了一个包含 ID、姓名和年龄字段的表格。我们为年龄字段添加了自定义单元格样式,如果年龄小于 18,则单元格文本颜色为红色。同时,我们设置了年龄字段的排序和过滤功能。
通过以上介绍,相信你已经对 Bootstrap-Table 有了一定的了解。希望这篇文章能帮助你更好地掌握 Bootstrap-Table 的使用方法。
