Bootstrap Table是基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选、多选、排序、分页,以及编辑、导出、过滤(扩展)等等的功能。本文主要和大家介绍Bootstrap Table快速完美搭建后台管理系统的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。
现在做的一个app管理以及后台配置系统,需要针对不同的城市作相应的定制化的配置,对一些后台数据也做一些展示和操作,所以每一个模块基本都会有表格的展现形式,这样做的好处就是直观方便操作。对于用什么table插件,无疑就是bootstrap table了,功能强大文档完善,并且我们项目里也是基于bootstrap布局的,所以就选择了他,接下来就贴一些项目代码来展示(仅供参考),自己也做一下笔记。
首先是用到了bootstrap的Tab来切换不同的表格用于展示,切换菜单代码如下:
1 2 3 4 5 6 | <p class = "report-count" >被举报次数:${ count }次</p>
<ul class = "report-btn nav nav-tabs" id= "myTab" >
<li class = "pending active" ><a href= "#padding" onclick= "freashTable(0)" data-toggle= "tab" >待处理:${stateCountList[0]}次</a><i class = "" ></i></li>
<li class = "success-report" ><a href= "#success-report" onclick= "freashTable(1)" data-toggle= "tab" >举报成立:${stateCountList[1]}次</a></li>
<li class = "fail-report" ><a href= "#fail-report" onclick= "freashTable(2)" data-toggle= "tab" >举报不成立:${stateCountList[2]}次</a></li>
</ul>
|
Salin selepas log masuk
相信对于bootstrap并不陌生,给每一个需要切换的标签 加上{data-toggle="tab"},并且增加锚点用于匹配到对应的切换的子内容{锚点:href="#padding" rel="external nofollow" },切换对应的字内容代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <p class = "table-view tab-content" >
<p class = " tab-pane fade in active" id= "padding" >
<p class = "table-header clear" >
<c:forEach items= "${complainCount1}" varStatus= "i" var = "c" >
<p>${c.complain_reason}:${c. count }次</p>
</c:forEach>
</p>
<p class = "line addStyle" ></p>
<p>
<table class = "table" ></table>
</p>
</p>
<p class = "tab-pane fade" id= "success-report" >
<p class = "table-header clear" >
<c:forEach items= "${complainCount2}" varStatus= "i" var = "c" >
<p>${c.complain_reason}:${c. count }次</p>
</c:forEach>
</p>
<p class = "line addStyle" ></p>
<p>
<table class = "table" ></table>
</p>
</p>
<p class = "tab-pane fade" id= "fail-report" >
<p class = "table-header clear" >
<c:forEach items= "${complainCount3}" varStatus= "i" var = "c" >
<p>${c.complain_reason}:${c. count }次</p>
</c:forEach>
</p>
<p class = "line addStyle" ></p>
<p>
<table class = "table" ></table>
</p>
</p>
</p>
|
Salin selepas log masuk
通过给每一个需要切换子内容元素设置对应上述锚点的id{#padding},并且不要忘了给外层容器加(tab-content),给子元素容器加class(tab-pane fade in active),有active的就是默认选中的。每一个子内容都有一个table元素,所以这里就是我们需要的table,切换每一个tab就会刷新显示对应的table数据。这里我们采用动态的生成table的方式加载数据。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | var $table =$('.table')
function initTable(index){
$table .bootstrapTable({
url: '${basePath}/interacts/complain/getComplainList?pkid='+$( "#pkid" ).val()+'&state='+index,
height: getHeight(),
striped: true,
search: true,
showRefresh: true,
showColumns: true,
minimumCountColumns: 2,
clickToSelect: true,
detailView: true,
detailFormatter: 'detailFormatter',
pagination: true,
paginationLoop: false,
sidePagination: 'server',
silentSort: false,
searchOnEnterKey: true,
idField: 'systemId',
maintainSelected: true,
toolbar: '#toolbar',
columns: [
{field: 'complain_reason', title: '举报类型',align: 'center'},
{field: 'nick_name', title: '举报人',align: 'center'},
{field: 'create_time', title: '举报时间',formatter:'timeFormat' },
{field: 'complain_state', title: '举报状态',formatter:'stateFormat'}
{field: 'action', title: '操作', align: 'center', formatter: 'actionFormatter', events: 'actionEvents', clickToSelect: false}
]
});
}
|
Salin selepas log masuk
以上就是初始化table的函数,传index是为了切换时候请求不同的地址刷新不同的table,因为在每一个tab切换菜单都有onclick事件函数 freashTable(index),table的所有用到的配置我都在上述代码中做了注释,想看跟详细的配置请看官网配置(http://bootstrap-table.wenzhixin.net.cn/zh-cn/documentation/)。columns配置每一行,field是对应的每一列要显示的字段key值,title对应的是每一列的头部,formatter是格式化每一列的自定义函数,下面只展示时间格式化函数代码:
1 2 3 4 | function timeFormat(value,row,index){
value = row.modifyTime==null?value:row.modifyTime;
return new Date (parseInt(value)).toLocaleString().replace(/:\d{1,2}$/,' ');
}
|
Salin selepas log masuk
对应的field为action的那一行就是操作按钮了,格式化操作按钮代码如下:
1 2 3 4 5 6 | function actionFormatter(value, row, index) {
return [
'<a class = "update" href= "javascript:;" onclick= "editdateAction(\'' + row.systemId + '\')" data-toggle= "tooltip" title= "Edit" ><i class = "glyphicon glyphicon-edit" ></i></a> ',
'<a class = "delete" href= "javascript:;" onclick= "deleteRowAction(\''+row.systemId+'\')" data-toggle= "tooltip" title= "Remove" ><i class = "glyphicon glyphicon-remove" ></i></a>'
].join('');
}
|
Salin selepas log masuk
同时分页bootstrap已经提供了完整的配置(包括每页显示的行数,分页按钮,总条数和总页数等等)但是没有跳转到指定行,所以需要我们自己写他的样式定位到相应的分页栏,不过他有相关的方法提供,
selectPage就是跳到指定页,我们可以自己系一个方法:
1 2 3 4 | function goPage(){
var page=$('#pageNum').val();
$table .bootstrapTable('selectPage',page)
}
|
Salin selepas log masuk
在用其方法时候,要$table.bootstrapTable('selectPage',page)使用。
相关推荐:
使用React全家桶搭建一个后台管理系统实例详解
基于thinkphp的后台管理系统模板快速搭建
Bootstrap Table快速搭建后台管理系统
Atas ialah kandungan terperinci Bootstrap Table搭建后台管理系统代码分享. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!