最近项目经常用到带有合并效果以及动态列的表格,而翻阅iview和element-ui官网没有找到合适的(也有可能自己的水平有限,不会改写),所以只好自己用原生表格写了一个,具体效果如下:

这个表格右侧表头的会员等级列是根据筛选结果动态生成,左侧的初始状态是按着结果动态合并行,右上也对应的有一个下载表格数据的方法,实现着这表格的关键在于对原生表格"th","tr"标签以及对"rowspan",“colspan”两个属性的理解,关于表格部分的html代码如下:

通常我们在写这种表格的时候经常会遇到以下问题:

问题一:

  我该怎样确定该合并多少行或列?

  首先,我们需要对后台返回的数据进行处理,如果不是数组我们就需要先将数据处理成数组,因为"rowspan",“colspan”只接受number类型的值,处理成数组之后就具有了“length”属性,然后在通过v-bind进行绑定,比如我这里的“:rowspan="this.levellist.length+1",至于为什么加1,因为是从0开始,不加的话合并的行数会少一行;

问题二:

  我该怎样实现动态列?

  同理,我们如果拿到的数据是对象就需要通过v-if对数据的有无进行判断,然后通过打点的方式进行数据绑定渲染,如果直接是数组,就通过v-for直接对数据进行遍历;

问题三:

  关于表头的合并及动态列?

  可以看到,我这里的“会员人数”是有两行合并在一起,而"截止状态"和“会员等级”各占一行,"会员人数“代码部分我是先让他们占据两个“tr”,然后将"会员人数"合并成一行,然后"截止状态","会员等级"各占一行,通过v-for循环出"会员等级"从而实现表头动态列;

问题四:

  怎样实现表格数据下载?

  这里是借鉴了网友的方法,代码如下,总之就是先给定一个类名,然后安装"file-saver"这个依赖项并导入来实现,代码如下:

这里是导入相关依赖项,通过 npm install file-saver -save 或yarn add file-saver --save安装,然后在通过import导入,

导出方法如下图:

将这个方法绑定到"下载"按钮即可!共勉!!

vue原生表格怎样实现动态列及表格数据下载的更多相关文章

  1. #Java Web累积#表格<table>中隐藏列做备用数据

    初入JW,MyEclipse,JS文件中码砖时怎么连个提示都没有. 步骤1 JSP代码中,Table多出一列,如下列代码中的 Other,其中css文件中将col00的width设置为0px; < ...

  2. [Phoenix] 八、动态列

    摘要: 传统关系型数据库的动态列实现只能依赖逻辑层的设计实现,而Phoenix是HBase上的SQL层,借助HBase特性实现的动态列功能,具有高度的灵活性,告别业务逻辑层的复杂设计. 一.概要 动态 ...

  3. datatable动态列处理,重绘表格(敲黑板,划重点!!!我肝了一天半才彻底弄懂这个东西,TAT)

    datatable动态列处理,重绘表格 前言:至于动态列的绘画,我前面博客已经写过了,就是动态列的配置问题,不懂的去我博客看下,今天要写的呢,就是你已经写了一个动态列在datatable,现在你想重新 ...

  4. vue + element ui 实现实现动态渲染表格

    前言:之前需要做一个页面,能够通过表名动态渲染出不同的表格,这里记录一下.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9786326.html 网站地址:我的 ...

  5. js/jq动态创建表格的行与列

    之前做了一个项目,需求是能动态创建表格行,动态创建表格的列,度了很多资料,都没有动态创建列的插件,所以自己动手写了一个 需求大概是(下图) 1.动态添加一行.2.动态添加一列,3.删除行.4.删除列, ...

  6. js实现动态删除表格的行或者列-------Day57

    昨天记录了动态加入表格的一行,当然这个一行是指一行数据,也就是说一行多少列也是加上的,而且第几列的内容都能够加入上,先来回想下它的实现的关键点: 1.var row=table.insertRow() ...

  7. 如何用easyui+JAVA 实现动态拼凑datagrid表格(续)

    前面一段时间写了一篇文章: 如何用easyui+JAVA 实现动态拼凑datagrid表格 这篇文章的话,效果是可以实现,但是经过我反复试验,还是存在一些问题的. 今天这篇文章就是向大家介绍下如何避免 ...

  8. ExtJS4.2学习(21)动态菜单与表格数据展示操作总结篇2

    运行效果: 此文介绍了根据操作左侧菜单在右面板展示相应内容. 一.主页 先看一下跳转主页的方式:由在webapp根目录下的index.jsp跳转至demo的index.jsp 下面是demo的inde ...

  9. [转]bootstrap table 动态列数

    原文地址:https://my.oschina.net/u/2356355/blog/1595563 据说bootstrap table非常好用,从入门教程中了解到它的以下主要功能: 由于固定表头意味 ...

随机推荐

  1. TensorFlow 多 GPU 处理并行数据

    Multi-GPU processing with data parallelism If you write your software in a language like C++ for a s ...

  2. 10行Python代码实现目标检测

    要知道图像中的目标是什么? 或者你想数一幅图里有多少个苹果? 在本文中,我将向你展示如何使用Python在不到10行代码中创建自己的目标检测程序. 如果尚未安装python库,你需要安装以下pytho ...

  3. 已知IP地址和子网掩码求出网络地址、广播地址、地址范围和主机数(转载https://blog.csdn.net/qq_39026548/article/details/78959089)

    假设IP地址为128.11.67.31,子网掩码是255.255.240.0.请算出网络地址.广播地址.地址范围.主机数.方法:将IP地址和子网掩码转化成二进制形式,然后进行后续操作. IP地址和子网 ...

  4. docker下centos7编译安装ffmpeg

    1.安装基础命令 docker下精简版centos没有make等命令,先安装: yum -y install gcc automake autoconf libtool make yum instal ...

  5. [HDU2546]饭卡<dp 01背包>

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=2546 #题目描述: 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前, ...

  6. MATLAB 文件读取(3)

    1.gps ,数值格式的读取 clear all test=importdata('2017- 9-27- 8-26-51.txt'); [r,c]=size(test.data);%row行,col ...

  7. vue 刮刮乐功能实现

    <template> <!--游玩区域--> <div class="panel"> <canvas id="canvas&qu ...

  8. udev规则,部署Multipath

    部署Multipath多路径环境 配置iSCSI服务 编写udev规则 配置并访问NFS共享 部署Multipath多路径环境 1 配置iSCSI服务 1.1 问题 本案例要求先搭建好一台iSCSI服 ...

  9. 部署并测试动态WSGI站点

                                                            部署并测试动态WSGI站点 5.1问题 本例要求为站点webapp0.example.c ...

  10. 【php】LAMP中开启错误提示

    vi /usr/local/php/etc/php.ini 查找display_errors 开启On即可