Bootstrap Table 插件实现固定左侧列

本文介绍了如何使用Bootstrap Table插件实现表格左侧列固定的效果。在应用中需要引入bootstrap-table-fixed-columns.css和bootstrap-table-fixed-columns.js两个文件。然而,这样做可能会导致列对齐问题,尤其是在初始化和窗口尺寸变化时。为解决此问题,可以使用JavaScript进行调整,确保在触发任何事件和窗口大小改变时调用fixleftwidth()函数来强制列对齐。

Bootstrap Table 插件固定列需要引用以下两个文件

bootstrap-table-fixed-columns.css与bootstrap-table-fixed-columns.js

但是引用这2个文件后,列有时候不对齐,比如初始化和窗口大小变化时,用js处理下效果还好

<table class="table-striped table-hasthead nowrap" id="tableTest1" data-search="true" data-fixed-columns="true" data-fixed-number="3">
    <thead>
        <tr>
            <th data-field="Index" data-formatter="indexFormatter" data-align="center">序号</th>
            <th data-field="OrderTime" data-formatter="formatterDateTime" data-sortable="true" data-align="center">下单日期</th>
            <th data-field="Id" data-sortable="true" data-align="center" data-formatter="OrderDetailsLink">订单号</th>
            <th data-field="ThirdPartyId">第三方编号</th>
            ......
        </tr>
    </thead>
</table>

 $('#table').bootstrapTable({
   url: '@Url.Action("DistributionOrderSearch", "Distribution")',     //请求后台的URL(*)
   //toolbar: '#toolbar',                //工具按钮用哪个容器
   striped: false,                     //是否显示行间隔色
   cache: true,                        //是否使用缓存,默认为true
   pagination: true,                  //是否显示分页(*)
   sortable: true,                    //是否启用排序
   sortOrder: "desc",                   //排序方式
   sortName: "OrderTime",
   sidePagination: "server",           //分页方式:client客户端分页,server服务端分页(*)
   pageNumber: 1,                      //初始化加载第一页,默认第一页
   pageSize: 15,                       //每页的记录行数(*)
   pageList: [10, 15, 30],        //可供选择的每页的行数(*)
   search: false,                      //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
   strictSearch: false,                //设置为 true启用 全匹配搜索,否则为模糊搜索
   showRefresh: false,                 //是否显示刷新按钮
   singleSelect: false,
   queryParamsType: "undefined",
   fixedColumns: true,
   fixedNumber: 3,
   onLoadSuccess: function () {
    //加载成功后,需要重新适配下宽度,不然初始化的时候固定列错位
     fixleftwidth()
   }
});
$(function() {
        $('#tableTest1').bootstrapTable({
            height: $(window).height() - 360,
            onAll: function(name, args) {
                fixleftwidth()
            }
        });
        
        fixleftwidth()
        $(window).resize(function() {
            $('#tableTest1').bootstrapTable('resetView');
            fixleftwidth()
        });
    });
function fixleftwidth() {
            setTimeout(function() {
                var fixColumnTds = $(".fixed-table-body-columns tr:first-child td");
                var fixNum = fixColumnTds.length;
                var tableBody = $(".fixed-table-body tbody tr:first-child td");
                for (var i = 0; i < fixNum; i++) {
                    fixColumnTds.eq(i).width(tableBody.eq(i).width())
                }
            }, 0)
        }

由于是用js 强制对齐的,所以在触发任何事件时都要执行下fixleftwidth(),并在窗口改变时也执行fixleftwidth()函数。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yyy2567338788

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值