美文网首页
React Table 固定列、固定表头的实现

React Table 固定列、固定表头的实现

作者: SANGET | 来源:发表于2019-03-24 21:21 被阅读0次

这几天在研究如何实现表格的固定列(fixed column)功能,这里记录了思路和细节。
表格控件比较复杂,应用场景也很多,各种数据展示、统计、操作,管理应用常用的组件之一。

Ukelli-UI Table 是为了应对以下应用场景:

  1. 友好的展示数据
  2. 友好的数据交互
  3. 友好的开发体验
  4. 业务逻辑和 UI 分离

期望效果

  1. 固定表头
  2. 左右各有一个固定的列
  3. 自动计算表格 cell 的宽度和高度,并且不能超过一定的长度,并且表头需要和表体同步宽度,不需要在配置中传入 UI 相关的宽度信息

实现细节

  1. 分为 3 个表格
    1. mainTable 主体表格
    2. leftFixedTable 左边的固定列表格
    3. rightFixedTable 右边固定列表格
  2. 监听 mainTable 和 fixedTable 的 scroll 事件,同步所有的表格的列的显示区域
  3. 向所有的行( row)元素 tr 监听 mouseenter 事件,确保鼠标移过对应的行所有的表格都有一致的表现
  4. 记录第一列的所有的格子 ( td )的高度信息,用于给固定表格的格子高度
  5. 记录第一行的格子的宽度信息,给 TableHeader 同步 TableBody 的宽度信息

目前主流的 Table 组件都需要设置列的宽度,最开始 ukelli-ui 的表格控件也是如此实现的,但是后面发现这样有两个问题

  1. 定义渲染配置的时候需要额外的 UI 的信息,即 width,这样不够纯粹
  2. 在开发的时候需要花很多精力在格子宽度上,要做到每一个表头都不会过长而换行,影响排版

参考:

相关文章

  • React Table 固定列、固定表头的实现

    这几天在研究如何实现表格的固定列(fixed column)功能,这里记录了思路和细节。表格控件比较复杂,应用场景...

  • 固定列和表格头的表格实现

    前言 脱离element-ui又借鉴element-ui,实现类似el-table的固定列和表头的效果 1-1固定...

  • table固定表头和列

    表格固定表头和列 背景 在项目中大多数的表格,都是使用ui库提供的表格,ui库提供的表格为我们封装了很多很实用的功...

  • table表头固定

    //jsp <%@ page language="java" import="java.util.*" pageE...

  • element table 固定列后,固定列表头下沉

    vue项目中使用element组件开发由于表格列比较多,所以把比较重要的一列固定在最右侧,但是固定之后固定列的表头...

  • table实现表头固定,仅用css

    仅仅使用css实现的表头固定使用中会很受限制,但是如果要求不高使用起来也并没有什么大问题,主要是分别在两个div中...

  • TABLE表头固定问题

    由于表格内容td是动态生成的,宽度不固定,所以通过定位的方式来实现表头固定会使表头脱离文档流,跟td内容不对齐,通...

  • jquery固定table表头

    在我们日常 大前端开发中,查看报表的时候,表格内容过长,这时候就可能会有需求:固定表头查看内容。 下面是解决办法 ...

  • table表头和列的固定方法整理

    [转]http://blog.csdn.net/oukunqing/article/details/4338671...

  • 自定义Table固定列和表头

    一、实现思路:表格数据中存在合并单元格,网上找了好多列子都没有实现。最后是把一个table拆分为两个table实现...

网友评论

      本文标题:React Table 固定列、固定表头的实现

      本文链接:https://www.haomeiwen.com/subject/blypvqtx.html