bootstrapTable设置height属性后,表格内容与标题对不齐的问题【亲测解决】

问题背景:

    项目管理后台前端页面采用bootstrap框架,需求表格的标题需要冻结,也就是表格的标题固定不动,内容可以上下滚动,查询bootstrap框架文档,发现将表格设置height属性后,可以达到此需求,示例代码如下:

var h = $(window).height() - 250;//动态获取窗口高度
    $('#exampleTable').bootstrapTable("destroy")
        .bootstrapTable(
            {
                method: 'get', // 服务器数据的请求方式 get or post
                url: prefix + "/list", // 服务器数据的加载地址
                iconSize: 'outline',
                toolbar: '#exampleToolbar',
                striped: true, // 设置为true会有隔行变色效果
                dataType: "json", // 服务器返回的数据类型
                pagination: true, // 设置为true会在底部显示分页条
                singleSelect: false, // 设置为true将禁止多选
                pageSize: 10, // 如果设置了分页,每页数据条数
                pageNumber: 1, // 如果设置了分布,首页页码
                showColumns: false, // 是否显示内容下拉框(选择显示的列)
                sidePagination: "server", // 设置在哪里进行分页,可选值为"client" 或者 "server"
                height: h, //设置height属性后,达到冻结标题的目的
                queryParams: function (params) {
                    return {
                        //说明:传入后台的参数包括offset开始索引,limit步长,sort排序列,order:desc或者,以及所有列的键值对
                        limit: params.limit,
                        offset: params.offset,
                        productNo: $('#productNo').val(),
                        productName: $('#productName').val()
                    };
                },
                columns: [
                    {
                        field: 'productNo',
                        title: '产品ID'
                    },
                    {
                        field: 'productName',
                        title: '产品名称'
                    },
                    {
                        field: 'supportStages',
                        title: '支持产品'
                    },
                    {
                        field: 'createTime',
                        title: '创建时间'
                    },
                    {
                        field: 'updateTime',
                        title: '修改时间'
                    },
                    {
                        title: '操作',
                        field: 'id',
                        align: 'center'
                    }]
            });

    但是问题来了。设置好height的属性后,发现页面的内容和标题无法对齐,效果如下:

解决过程:

    设置height属性后,bootstrapTable会自动生成一个包含标题名称的div,

    而原来生成的fixed-table-body里的标题名称,则由于margin-top:-36px被隐藏掉了。

    所以通过网上查找资料,找到了一个更改新生成标题的宽度width属性来达到内容与标题对齐的目的,但是网上找到的是修改bootstrap-table.js的源码,而我这里用的是bootstrap-table.min.js,但是解决问题的思路都是一致的。将代码格式化之后,得到如下内容:

解决办法:

    上图中红框的内容就相当于将原来的标题内容赋值给新生成的固定标题的内容,这里我们可以通过添加将原来标题的宽度赋值给新生成的固定标题的宽度的代码来解决。代码如下:

如果修改之后发现还是对不齐的话,就将如下代码注释掉,应该可以解决问题,代码如下:

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值