我爱编程让前端飞

常用表格插件:Bootstrap-table 用法梳理

2018-03-07  本文已影响0人  东西里

这是我第2篇简书。


所需js文件夹

1.引用

css:
   <link href="/css/plugins/bootstrap-table/bootstrap-table.min.css" rel="stylesheet">
js:
  <script src="/js/plugins/bootstrap-table/bootstrap-table.min.js"></script>
  <script src="/js/plugins/bootstrap-table/bootstrap-table-mobile.min.js"></script>
  <script src="/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>     //中文
 <script src="/js/plugins/bootstrap-table/bootstrap-table-export.min.js"></script>    //导出excel,需要时再引用

2.主要代码块

html
<!--表格搜索选项,姓名、编号、电话号码等在此输入查询表格,进入页面通常设置默认查询全部-->
  <input type="text" id="phone" placeholder="电话号码" class="m-wrap medium" />
<!--点击搜索就再运行一次这个封装的函数buildTable-->
  <button type="button" id="queryBtn" class="btn blue">搜 索</button>
<!--新增的按钮一般放在表格的左上-->
  <button type="button" id="addBtn" class="btn blue" onclick="addEmployee()">新 增</button>
<!--数据渲染到这个标签中-->
  <!--data-toggle默认‘table’:不用写 JavaScript 直接启用表格。data-pagination设置为 true 会在表格底部显示分页条-->
  <table id="manage_table" data-toggle="table" data-pagination="true"></table>
-------------------------------------------------------------------------------------------------------------
js
function buildTable(){
          //配置列选项
            var columns = [
                {
                    field: 'id',    //此处要与接口字段保持一致
                    align: 'center',   //居中
                    title: '编号'    //表格th名
                },
                {
                    field: 'realName',
                    align: 'center',
                    title: '姓名'
                },
                {
                    field: 'phoneNumber',
                    align: 'center',
                    title: '电话'
                },
                {
                    field: 'typeStr',
                    align: 'center',
                    title: '类型'
                },
                {
                    field: 'opt',
                    align: 'center',
                    title: '操作',   
                    formatter: function (value, row, index) {   //一般用来操作表格的行,编辑、详情、修改、删除等
                        return [
                            '<a class="detail ml10 blueLink" style="cursor: pointer;text-decoration: none;" 
                            onclick=agentDetail(\''+ row['userId'] +'\') title="编辑">编辑</a>|',
                            '<a class="detail ml10 blueLink" style="cursor: pointer;text-decoration: none;" 
                            onclick=deleteAgent(\''+ row['userId'] +'\') title="删除">删除</a>'
                        ].join('');
                    }
                }];
                    
            $('#manage_table').bootstrapTable('destroy').bootstrapTable({    //每次建立表格前将上一次的表格销毁,要用到 destroy
                method:"get",    //数据请求方法
                url:"/web/list",   //接口地址
                contentType: "application/x-www-form-urlencoded",
                columns: columns,  //列配置项
                sidePagination: 'server',  //分页方式:client客户端分页,server服务端分页(*)
                pagination: true,       //是否显示分页
                pageSize: 10,          //每页展示多少行
                pageList: [10, 25, 50, 100],   //前端选择展示多少行
                pageNumber: 1,      //初始化加载第一页,默认第一页 
                queryParamsType: '',
                queryParams: paginationParam,   //查询条件
                responseHandler: dataHandler,   // 后台返回的数据处理
                locale: 'zh-CN',      //
            });

            function paginationParam(params) {
                return {
                    phoneNumber:$("#phone").val(),    //传入电话号码查询表格,有几个查询项就要添加几个字段
                    pageSize:params.pageSize,          //这两个默认页码显示多少页
                    pageNum:params.pageNumber
                };
            };

            function dataHandler(data) {
                if(data!=null && data!="" && data.code == 0) {
                    //data即为后台返回的数据
                    //这里可以给页面传入一些值显示......
                    return {
                        "total": data.response.total,    
                        "rows": data.response.list   // 后台返回的数据
                    }
                }else{
                    layer.msg("查询失败,原因:"+data.msg,{icon: 5,shade: 0.6});   //配合layer弹出框来展示提示信息
                    return {
                        "total": 0,
                        "rows": []
                    }
                }
            }
        };

详细api查询:
http://blog.csdn.net/rickiyeat/article/details/56483577

3.总结:
bootstrap-table主要用于后台管理系统中数据的增删改查,工作中会经常用到,不仅很好的兼容pc端各个屏幕尺寸的展示,同时引用了bootstrap-table-mobile.min.js后还兼容移动端,整体页面显示效果很不错。自带的搜索以及工具栏我没有用,一般自定义查询设置项会更清晰美观一点。js文件中包含的bootstrap-table-export.min.js可以将页面表格下载为excel文件保存。

上一篇下一篇

猜你喜欢

热点阅读