背景:

小颖最近在写项目时遇到了要给  element-ui 中的  el-table v-for  el-table-column 标签时给某列加内容和点击事件,项目忙完了想着总结一下,下面一起来看下具体怎么实现吧

页面效果:

公共数据:

  data() {
return {
tableData: [{
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄',
sex: '男'
}, {
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄',
sex: '男'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄',
sex: '男'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄',
sex: '男'
}, {
date: '2016-05-08',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄',
sex: '男'
}, {
date: '2016-05-06',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄',
sex: '男'
}, {
date: '2016-05-07',
name: '李晓梅',
address: '上海市普陀区金沙江路 158号',
sex: '女'
}],
}
},

公共点击事件:

  methods: {
toDetail(row, column, event) {
console.log('点击地址啦');
}
}

公共CSS:

<style lang="scss">
.blue-font-color {
color: #409eff;
border-bottom: 1px solid #409eff;
cursor: default;
}
</style>

方法一:

使用 slot-scope + v-if + v-else

HTML:

    <el-table :data="tableData" height="250" border style="width: 100%">
<el-table-column :prop="dt.prop" :label="dt.labelName" v-for="(dt,index) in colData"
:key="index">
<template slot-scope="scope">
<span v-if="dt.prop=='address'" class="blue-font-color" @click="toDetail(scope.row)">
{{ scope.row.address }}</span>
<span v-else>{{ scope.row[dt.prop] }}</span>
</template>
</el-table-column>
</el-table>

Javascript:

      colData: [
        { prop: 'date', labelName: '日期' },
        { prop: 'name', labelName: '姓名' },
        { prop: 'address', labelName: '地址' },
        { prop: 'sex', labelName: '性别' },
      ],

方法二:

使用 表格自带的  formatter + row-click事件

HTML:

    <el-table :data="tableData" height="250" border style="width: 100%" @row-click="toDetail">
<el-table-column :prop="dt.prop" :label="dt.labelName" v-for="(dt,index) in colData"
:key="index" :formatter="dt.formatter">
</el-table-column>
</el-table>

Javascript:

data差异:

      colData: [
{ prop: 'date', labelName: '日期' },
{ prop: 'name', labelName: '姓名' },
{
prop: 'address', labelName: '地址',
formatter: (row, column, cellValue, index) => {
return <span class='blue-font-color'>{cellValue}</span>
}
},
{ prop: 'sex', labelName: '性别' },
],

点击事件差异:

    toDetail(row, column, event) {
if (column.property == "address") {
console.log('点击地址啦');
}
}
}

方法三:

使用 表格自带的  formatter 

HTML:

    <el-table :data="tableData" height="250" border style="width: 100%">
<el-table-column :prop="dt.prop" :label="dt.labelName" v-for="(dt,index) in colData"
:key="index" :formatter="dt.formatter">
</el-table-column>
</el-table>

 Javascript:

data差异:(tableData 还要的哦,只是这里没写)

  data() {
const that = this
return {
colData: [
{ prop: 'date', labelName: '日期' },
{ prop: 'name', labelName: '姓名' },
{
prop: 'address', labelName: '地址',
formatter: (row, column, cellValue, index) => {
return <span class='blue-font-color' onclick={that.toDetail.bind(null, row)}>{cellValue}</span>
}
},
{ prop: 'sex', labelName: '性别' },
]
}
},

点击事件就和上面 公共的点击事件方法 一样。

如何给el-table中某一列加指定内容和点击事件的更多相关文章

  1. JavaScript实现获取table中某一列的值

    JavaScript实现获取table中某一列的值 1.实现源代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/ ...

  2. JavaScript获取table中某一列的值的方法

    1.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...

  3. 合并table中某一列相邻的相同的行

    合并table中某一列相邻的相同的行​1. [代码]合并table中某一列相邻的相同的行  <!DOCTYPE html><html>    <head>      ...

  4. excel 如何为列添加指定内容(字符串)

      excel 如何为列添加指定内容(字符串) CreateTime--2018年5月26日17:52:32 Author:Marydon 1.情景展示 D列的值需要获取B列的值并且在后面统一加上12 ...

  5. 解决ListView中Item的子控件与Item点击事件冲突

    常常会碰到在ListView中点击当中一个Item.会一并触发其子控件的点击事件.比如Item中的Button.ImageButton等.导致了点击Item中Button以外区域也会触发Button点 ...

  6. ListView中嵌入布局的Button或多个点击事件

    有时候在ListView嵌入的布局中有多个事件需要点击,比如一个item中有TextView和Button两个布局,当我们需要获取这两个点击事件时,我们应该如何去获取呢,通常来说,我们都是已经固定好了 ...

  7. 关于页面中table中相同的列自动合并

    代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...

  8. 给table中某一列的文字右对齐

    一般来说,没写过jquery的前端人员,肯定是定义一个class,给每一行的那列加上align_r{text-align:right}.这是很麻烦的. 所以用jquery来写,可以$("ta ...

  9. HTML锁定Table中某一列

    1. 2. 3. function ChangeTable() { var type = document.getElementById("ddl_ReportType").val ...

  10. OAF TABLE中添加序号列

    在实际的OAF页面TABLE的使用中,会有很多时候需要在前台页面中显示序号,虽然在sql中可以使用rownum来获得序号,但是rounum的优先级比order by 高,所以在语句中order by ...

随机推荐

  1. 随风迎 jmeter下TPS插件的安装(转)

    1.下载插件http://pan.baidu.com/s/1mioVJni 2.解压下载的安装包: 将 jpgc-graphs-basic-2.0.zip 解压缩后只有一个 lib 目录,该目录下有一 ...

  2. AcWing 第 92 场周赛 C题 4866. 最大数量 题解

    原题链接 链表 + 并查集乱搞做法: 思路 首先可以发现,想要让度数尽量大,那我们应该构造成菊花图,即下图所示: 对于每个需求,我们可以知道,如果之前他们没有连在一起,那我们一定得把他们连在一起,该过 ...

  3. 使用MkDocs搭建个人博客

    使用MkDocs搭建个人博客 接触编程已经好几年了,阅读了无数大佬的博客文章,但是从来没有自己写过.这其中最重要的原因当然是懒惰,觉得写博客太费时间了,对自己的帮助也不大.可是如今发现自己的记性越来越 ...

  4. [linux]常见内核TCP参数描述与配置

    前言 所有的TCP/IP参数都位于/proc/sys/net目录下(请注意,对/proc/sys/net目录下内容的修改都是临时的,任何修改在系统重启后都会丢失),如果需要固化设置,则需要修改/etc ...

  5. debian11编译安装freeswitch

    前言 环境: 系统版本:debian 11 x86_64 FreeSWITCH版本:1.10.6 安装步骤 安装依赖(安装之前最好换apt软件源为国内的) apt install -y gnupg2 ...

  6. TCP的可靠性之道:确认重传和流量控制

    TCP 全称为 Transmission Control Protocol(传输控制协议),是一种面向连接的.可靠的.基于字节流的传输层通信协议,其中可靠性是相对于其他传输协议的优势点.TCP 为了确 ...

  7. 全是中文的txt文件查找特定字符并输出该行到新文件

    tangshi.txt文件为全为汉唐诗 在该文件中查找指定字符 codecs库为打开中文文件的库,详情自行知乎 tangshi.txt大概十几万行,需要该文件练手的同学下方评论 要点:更改文件字符编码 ...

  8. 《Python魔法大冒险》010 魔法宝箱:列表与元组的探险

    城堡的大门 随着小鱼和魔法师的深入,他们来到了一个古老的废弃城堡.城堡的大门上挂着一个巨大的锁,而锁的旁边有一排小抽屉,每个抽屉里都有一个物品. 魔法师对小鱼说:"这是一个古老的魔法宝箱,小 ...

  9. C++ 学习笔记、01 | 开发简单职工管理系统遇到的一些问题

    记录开发简单职工管理系统遇到的一些问题,黑马教程 https://www.bilibili.com/video/BV1et411b73Z P147 ~ P166 头文件与源文件 头文件只声明,源文件来 ...

  10. Flutter 编写收音机开源

    之前写的一个 Flutter 收音机,支持桌面端和手机端,在https://www.cnblogs.com/imlgc/p/17536481.html ,写完之后就不怎么管了.后面陆陆续续有人邮件索要 ...