el-table 多级表头下对应列的固定

一、问题描述

el-table 中正常的固定列操作是在 el-table-column 中添加属性 fixed="left/right"。但是当 table 中含有多级表头的时候(即 el-table-column 的嵌套),在一级表头中这个属性时只会固定 【表头下的首列】,如下图:

尝试的解决方法是:

1、在一级表头的 el-table-column 中加 fixed 属性,但是出现上述情况【只固定首列】

2、在一级表头下的 el-table-column 中为每列都加上 fixed 属性(或者一级、一级下的 el-table-column都加上),会出现【表格数据缺失】或者【一级表头内容缺失】

。。。然后因为我搜索关键词的能力不堪,,,搜到了合并列,,,绕了一大圈,,,其实不难。


二、解决办法
  • 确保多级表头的实现是用 el-table-column 嵌套实现的
  • 为 一级表头下需要固定的 el-table-column 添加宽度,即 width 属性(为下一步设置一级表头 width 的值做准备,因为默认值是 auto)
  • 为一级表头的 el-table-column 添加 fixed 属性,然后添加 width 的宽度,其中 width 的宽度为 固定列 width 宽度的 总和

【说明】:一级表头的 width 决定了 fixed 区域的宽度,尽量是恰好的,不然样式上可能不是你想要的效果,大家可以多尝试

效果图:

代码:

<template>
  <el-table
    :data="tableData"
    style="width: 100%">
    <el-table-column
      label="一级表头1"
      width="400"
       fixed>
      <el-table-column
        prop="month"
        label="列1-1"
        width="100">
      </el-table-column>
      <el-table-column
        label="列1-2"
        width="100">
      </el-table-column>
      <el-table-column
        label="列1-3"
        width="100">
      </el-table-column>
      <el-table-column
        label="列1-4"
        width="100"
        >
      </el-table-column>
    </el-table-column>
    <!-- 其他列 -->
    <el-table-column
        prop="month"
        label="列2"
        width="180">
      </el-table-column>
      <el-table-column
        prop="month"
        label="列3"
        width="180">
      </el-table-column>
      <el-table-column
        prop="month"
        label="列4"
        width="180">
      </el-table-column>
      <el-table-column
        prop="month"
        label="列5"
        width="180">
      </el-table-column>
      <el-table-column
        prop="month"
        label="列6"
        width="180">
      </el-table-column>
      <el-table-column
        prop="month"
        label="列7"
        width="180">
      </el-table-column>
      <el-table-column
        prop="month"
        label="列8"
        width="180">
      </el-table-column>
      <el-table-column
        prop="month"
        label="列9"
        width="180">
      </el-table-column>
  </el-table>
</template>
 
<script>
export default {
  data() {
    return {
      tableData: [
        // 数据...
      ]
    };
  }
};
</script>

大概就是这个样子,好记性不如烂笔头(加之本人记忆力就是一坨屎。。。),如有错误,欢迎并感谢每一程序员大佬的指正~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值