时间:2021-05-28
element 官方的例子太简单了,不满足实际的需求
数据肯定是动态的,合并的行数,列数都是动态的,该如何知道每一行的合并数呢
动态合并表格,数据来源于数据库
一开始,我的数据源是单独的数组,表格数据合并了几个数据,
我根据各个数组的长度,来决定每一行的合并数
结果:有些数据是正常的,但有些又合并出错了。计算的方式不对
尝试二
dataPretreatment() 用这个方法 计算出每一行的行数
dataPretreatment(){ //表格数据列合并预处理,生成一个与行数相同的数组记录每一行设置的合并数 // 如果是第一条记录(索引为0),向数组中加入1,并设置索引位置; // 如果不是第一条记录,则判断它与前一条记录是否相等,如果相等, // 则向mergingRows中添入元素0,并将前一位元素+1,表示合并行数+1, // 以此往复,得到所有行的合并数,0即表示该行不显示。 for(let i = 0; i < this.tableData.length; i ++){ // tabledata 表格数据源 if(i === 0){ this.mergingRows.push(1) this.mergingPos = 0 }else { if(this.tableData[i].name === this.tableData[i - 1].name) { //哪些数据是要合并的 合并的条件是什么 this.mergingRows[this.mergingPos] +=1 this.mergingRows.push(0) }else { this.mergingRows.push(1) this.mergingPos = i } } } },用这个方法mergeColumn()绑定到官方提供的span-method 方法上面
mergeColumn({row, column, rowIndex, columnIndex}){ if (columnIndex === 0) { //第一列 const _row = this.mergingRows[rowIndex]; const _col = _row>0 ? 1 : 0; return { rowspan: _row, colspan: _col } } // if(columnIndex === 1){ //第二列 每一行的条件可以不一样 这样就是动态多样合并表格啦 // const _row = this.mergingRows[rowIndex]; // const _col = _row>0 ? 1 : 0; // return { // rowspan: _row, // colspan: _col // } // } },展示结果
1. 第一列 计算出要合并的行数
2.发现鼠标在表格移动mergeColumn()这个方法一直在调用
一定要高清每一行的合并行数,按列来区分的
切记切记哦!不然表格合并出来的 跟你想象的不一样
以上就是element 动态合并表格的步骤的详细内容,更多关于element 动态合并表格的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
通过在vue中使用element的table表格,实现数据动态渲染,并且动态渲染表头。通过在父组件中引入子组件表格,然后向子组件传递表格数据和表头数据。子组件t
element-ui官网中关于行合并的例子是根据行号进行合并的,这显然不符合我们日常开发需求,因为通常我们table中的数据都是动态生成的,所以需要做一些修改。
之前写了一些关于element-ui表格合并的方法,不过用的数据都是确定的数据(死数据),但是很多时候我们的数据都是通过后台获得的,数据不稳定,这个时候使用表格
本文介绍了element-ui中Table表格省市区合并单元格的方法实现,分享给大家,具体如下:效果如图代码如下:查询{{scope.row.remake}}{
以excel为例,合并多个单元格的操作步骤为: 1、打开excel表格,鼠标选中要合并的多个单元格。 2、点击开始菜单下的【合并居中】的下拉按钮,选择一种合