zoukankan      html  css  js  c++  java
  • BootStrapTable的应用

    前端代码:注意先引入bootstrap和tablle需要的css以及js文件,注意表格命名一个id,本table名为project_table

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <title>万里哥的系统</title>
    
        <link rel="stylesheet" href="${request.contextPath}/statics/js/lib/bootstrap-3.3.7/css/bootstrap.css">
        <link rel="stylesheet" href="${request.contextPath}/statics/js/lib/bootstrap-table/bootstrap-table.css">
        <link rel="stylesheet" href="${request.contextPath}/statics/css/base.css">
        <link rel="stylesheet" href="${request.contextPath}/statics/css/project.css">
        <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=fEW9yTlMIinhZKYcVcRwQKHU"></script>
        <script type="text/javascript"
                src="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.js"></script>
        <script src="${request.contextPath}/statics/js/baidu.js"></script>
        <script src="${request.contextPath}/statics/js/laydate.js"></script>
        <script src="${request.contextPath}/statics/js/lib/jquery-2.1.1.min.js"></script>
        <script src="${request.contextPath}/statics/js/lib/bootstrap-3.3.7/js/bootstrap.js"></script>
        <script src="${request.contextPath}/statics/js/lib/bootstrap-table/bootstrap-table.js"></script>
        <script src="${request.contextPath}/statics/js/lib/bootstrap-table/locale/bootstrap-table-zh-CN.js"></script>
        <script src="${request.contextPath}/statics/js/lib/echarts.min.js"></script>
        <script src="${request.contextPath}/statics/js/bootstraptable.js">
        </script>
    </head>
    
    <body>
    <div class="content">
        <div class="content_middle">
            <div class="m_right">
                <div class="right_query">
                    <span>年份:</span>
                    <select id="project_query_year">
                        <option value=''></option>
                        <option value=''></option>
                        <option value=''></option>
                        <option value=''></option>
                    </select>
                    <span>查询日期:</span>
                    <input type="text" class="day-input" placeholder="请选择日期" id="test6">
                    <span>关键字:</span>
                    <input type="text" id="project_query_name" placeholder="请输入项目名称关键字">
                    <button id="project_query_btn">查询</button>
                    <iframe id="iframe1" style="display: none"></iframe>
                    <button id="project_print_btn">打印</button>
                    <button id="project_export_btn">导出</button>
                </div>
                <div class="right_table">
                    <table id="project_table" class="table">
                    </table>
                </div>
            </div>
        </div>
    </div>
    </body>
    </html>

    Js代码:注意事项columns的field属性要与接口返回的数据大小写一致,不然就会报错为空,查无数据。BootStrapTable要求真的很严格。

    $(document).ready(function() {
        initDatagrid();
    });
    
    //初始化表格
    function initDatagrid() {
        var year = 2020;
        $('#project_table').bootstrapTable({
            url : 'electricity/getProjectList', //请求后台的URL(*)
            method : 'get', //请求方式(*)
            queryParams : function(params) {
                return {   //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
                    offset: params.offset,
                    limit: params.limit,
                    year: year
                }
            },
            triped : true, //是否显示行间隔色
            cache : false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
            pagination : true, //是否显示分页(*)
            sortable : false, //是否启用排序
            sortOrder : "asc", //排序方式
            sidePagination : "server", //分页方式:client客户端分页,server服务端分页(*)
            pageNumber : 1, //初始化加载第一页,默认第一页
            pageSize : 10, //每页的记录行数(*)
            search : false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
            contentType : "application/x-www-form-urlencoded",
            strictSearch : true,
            showColumns : true, //是否显示所有的列
            showRefresh : true, //是否显示刷新按钮
            minimumCountColumns : 2, //最少允许的列数
            clickToSelect : true, //是否启用点击选中行
            height : 700, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
            uniqueId : "no", //每一行的唯一标识,一般为主键列
            showToggle : true, //是否显示详细视图和列表视图的切换按钮
            cardView : false, //是否显示详细视图
            detailView : false, //是否显示父子表
            responseHandler : function(res) {
                //将服务端你的数据转换成bootstrap table 能接收的类型
                return {
                    "total" : res.total,//总页数
                    "rows" : res.records
                    //数据
                };
            },
            columns: [{
                radio : true
            },{
                field: 'ID',
                title: 'Item ID'
            }, {
                field: 'YEAR',
                title: '年份'
            }, {
                field: 'NUM_COMPARE',
                title: '数量同比'
            },{
                field: 'PRODUCE',
                title: '本月生产用电'
            },{
                field: 'LIVE',
                title: '本月生活用电'
            }],
            onLoadSuccess : function(data) {
                $('#datagrid').bootstrapTable('uncheckAll')
            },
            onCheck : function(row) {
                //清除地图上的overlay
                var map = baiduMapModule.getMap();
                map.clearOverlays();
            }
        });
    
    }

    Mapper文件:注意resultType为Map,则返回接口数据字段与数据库字段一致。

     <select id="getAll" resultType="java.util.HashMap">
            select id,year,month,num_Compare,produce,live from ene_electricity
            <if test="year!=null and year!=''">
                where  year = #{year}
            </if>
        </select>

    后台代码:利用mybatis-plus插件自动分页

        //分页查询接口
        @RequestMapping("/getProjectList")
        @ResponseBody
        public Page getProjectList(HttpServletRequest request) {
            int offset = Integer.parseInt(request.getParameter("offset"));
            int limit = Integer.parseInt(request.getParameter("limit"));
            String yearStr =  request.getParameter("year");
            Integer year = null;
            if(yearStr!=null){
                year = Integer.parseInt(yearStr);
            }
            Page page = new Page<>(offset / limit + 1, limit);
            Page projectWinInfoList = (Page) electricityDao.getAll(page,year);
            return projectWinInfoList;
        }

    效果:

  • 相关阅读:
    Beyond Compare 4
    关于差分到底要不要包地的讨论
    关于PCB走线能不能走锐角的讨论
    AD 不规则焊盘设计
    如何利用CAM350快速完成拼板
    基于STM32CubeMX USB HID 鼠标学习和实现 --前言
    STM32 IO中断方式测试频率
    AD 导出Gerbe步骤
    allegro pcb 中的盲埋孔设置
    基于运放的恒流设计原理
  • 原文地址:https://www.cnblogs.com/wanlige/p/14744205.html
Copyright © 2011-2022 走看看