Bootstrap Table使用教程:数据表格实战
1168 字
6 分钟
Bootstrap Table使用教程:数据表格实战
📝 本文基于作者实际开发经验,已在项目中成功使用 Bootstrap Table 实现数据表格展示。
最近项目中要展示一个表格,就使用了bootstrap的表格,听说巨好用,但是还是碰到了些坑。
1.html编写
html比较简单,主要就是引入bootstrap的样式和jquery。jquery是为了表格加载直接请求后端接口。
<!DOCTYPE html><html lang="en"><head> <!-- 引入bootstrap样式 --> <link href="https://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"> <!-- 引入bootstrap-table样式 --> <link href="https://cdn.bootcss.com/bootstrap-table/1.11.1/bootstrap-table.min.css" rel="stylesheet">
<!-- jquery --> <script src="https://cdn.bootcss.com/jquery/2.2.3/jquery.min.js"></script> <script src="https://cdn.bootcss.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<!-- bootstrap-table.min.js --> <script src="https://cdn.bootcss.com/bootstrap-table/1.11.1/bootstrap-table.min.js"></script> <!-- 引入中文语言包 --> <script src="https://cdn.bootcss.com/bootstrap-table/1.11.1/locale/bootstrap-table-zh-CN.min.js"></script>
<meta charset="UTF-8"> <title>测试</title></head><body><table id="myTable" class="table table-hover text-nowrap"></table></body></html>2.Js编写
js的编写主要就是注意url表示你后端的请求额接口,method请求方法。
responseHandler:因为获取到的数据可能是json,包含记录和一些提示,所以这个函数可以对其进行处理,获得最终记录和列对应。

columns:里面包含的就是初始化表格的列,field对应的是你返回记录的属性,title就是初始化列你取的名字。


$(function () { $('#myTable').bootstrapTable({ method: 'get', //以post的方式发送请求 url: '/testList', //url地址,可以是接口也可以是本地json文件 striped: true, // 是否显示行间隔色 pageNumber: 1, // 初始化加载第一页 pagination: true, // 是否分页 sortable: true, //是否可排序 search: true, //是否可查询 showColumns: true, //筛选要显示的列 showSearchClearButton: true, //显示搜索清除按钮 pageSize: 10, // 默认单页记录数 pageList: [10, 15, 20], //分页可选页数 sidePagination: "client", //表示客户端请求 clickToSelect: true, //是否启用点击选中行 //height: 500, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度 uniqueId: "id", //每一行的唯一标识,一般为主键列 showToggle: true, //是否显示详细视图和列表视图的切换按钮 cardView: false, //是否显示详细视图 detailView: false, //是否显示父子表 onLoadSuccess: function () { //加载成功时执行 debugger; console.log("加载成功"); }, onLoadError: function () { //加载失败时执行 debugger; console.error("加载数据失败"); }, responseHandler: function (res) { //在ajax获取到数据,渲染表格之前,修改数据源 //该项返回的为数据源内的二级列表data if (res.code == "200") { return res.rows; } else { //显示报错信息 console.error(res); } },
paginationLoop: true, //换页按钮设置 paginationHAlign: 'left', paginationDetailHAlign: 'right', paginationPreText: '上一页', paginationNextText: '下一页', columns: [{ checkbox: true //左侧复选框,用于多选操作 }, { title: 'ID', field: 'id', visible: false, align: 'center', valign: 'middle', sortable: true }, { title: '序号', visible: true, align: 'center', valign: 'middle', width: '50px', formatter: function (value, row, index) { return index + 1; } }, { title: '关键词', field: 'keywords', visible: true, align: 'center', valign: 'middle', sortable: false, width: '160px' }, { title: '新闻标题', field: 'newsTitle', visible: true, align: 'center', valign: 'middle', sortable: false, width: '160px' }, { title: '新闻作者', field: 'author', visible: true, align: 'center', valign: 'middle', sortable: false, width: '160px' }, { title: '创建时间', field: 'createDatetime', visible: true, align: 'center', valign: 'middle', sortable: false, width: '160px' } ] }); });3.后端java的编写
这里我是一个类型于新闻的类的列表返回,就是数据库查询多条记录,然后使用map返回数据。碰到了个坑,没有加@ResponseBody的时候显示加载失败。
PS:@ResponseBody是作用在方法上的,@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】,这里bootstrap用的就是ajax。
import com.website.company.entity.News;import com.website.company.service.NewsService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;import java.util.List;import java.util.Map;
/** * 类描述:测试类 * * @ClassName TestController * @Author ward * @Date 2022-06-27 10:49 */@Controllerpublic class TestController { @Autowired NewsService newsService;
@RequestMapping("/testList") @ResponseBody public Object testList() { List<News> datalist = newsService.allNews(); Map map = new HashMap(); map.put("code", "200"); map.put("total", datalist.size()); map.put("rows", datalist); return map;
}}番外
在把date格式传回前端给bootstrap的table时只剩下年月日了,前端暂时没有处理办法。所以就在后端进行了处理:增加属性把时间格式转为String,并表示当前属性不是数据库的字段。代码如下:
@TableField("CREATE_TIME")private Date createTime;
@TableField(exist = false)protected String createTimeStr;
public String getCreateTimeStr() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); return sdf.format(createTime);}
public void setCreateTimeStr(String createTimeStr) { this.createTimeStr = createTimeStr;}相关推荐
- Bootstrap响应式二级导航菜单:悬停展开实现 - Bootstrap UI 组件
- React系统学习:从基础语法到虚拟DOM - 前端框架对比
- Java实现文档视频缩略图:Spire插件实战 - Java 后端开发
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
Bootstrap Table使用教程:数据表格实战
https://blog.wmovie.site/posts/bootstrap-table-guide/ 相关文章 智能推荐
1
Bootstrap响应式二级导航菜单:悬停展开实现
开发笔记 Bootstrap响应式二级导航菜单实现,支持悬停展开、一级菜单可点击、滑动显示等交互效果。
2
React系统学习:从基础语法到虚拟DOM
开发笔记 React入门教程,涵盖JSX语法、组件化、虚拟DOM、状态管理等核心概念,适合初学者系统学习。
3
Kindle传书完全指南:Calibre管理任意格式电子书
开发笔记 Kindle传书终极教程,使用Calibre管理epub、mobi、azw3、pdf等任意格式电子书,支持批量转换和推送。
4
SSE服务器推送:实时网络传输协议详解与实战
软路由与网络 SSE是基于HTTP的轻量级单向传输协议,允许服务器主动向客户端推送实时数据。本文介绍SSE的客户端和服务端实现方式。
5
Metasploit渗透测试实战:白帽子从入门到精通
开发笔记 根据Metasploit渗透测试指南PDF,总结Metasploit框架的基础知识、情报收集、漏洞扫描等核心内容。
随机文章 随机推荐