如何给el-table中某一列加指定内容和点击事件
背景:
小颖最近在写项目时遇到了要给 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:
方法二:
使用 表格自带的 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中某一列加指定内容和点击事件的更多相关文章
- JavaScript实现获取table中某一列的值
JavaScript实现获取table中某一列的值 1.实现源代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/ ...
- JavaScript获取table中某一列的值的方法
1.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...
- 合并table中某一列相邻的相同的行
合并table中某一列相邻的相同的行1. [代码]合并table中某一列相邻的相同的行 <!DOCTYPE html><html> <head> ...
- excel 如何为列添加指定内容(字符串)
excel 如何为列添加指定内容(字符串) CreateTime--2018年5月26日17:52:32 Author:Marydon 1.情景展示 D列的值需要获取B列的值并且在后面统一加上12 ...
- 解决ListView中Item的子控件与Item点击事件冲突
常常会碰到在ListView中点击当中一个Item.会一并触发其子控件的点击事件.比如Item中的Button.ImageButton等.导致了点击Item中Button以外区域也会触发Button点 ...
- ListView中嵌入布局的Button或多个点击事件
有时候在ListView嵌入的布局中有多个事件需要点击,比如一个item中有TextView和Button两个布局,当我们需要获取这两个点击事件时,我们应该如何去获取呢,通常来说,我们都是已经固定好了 ...
- 关于页面中table中相同的列自动合并
代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...
- 给table中某一列的文字右对齐
一般来说,没写过jquery的前端人员,肯定是定义一个class,给每一行的那列加上align_r{text-align:right}.这是很麻烦的. 所以用jquery来写,可以$("ta ...
- HTML锁定Table中某一列
1. 2. 3. function ChangeTable() { var type = document.getElementById("ddl_ReportType").val ...
- OAF TABLE中添加序号列
在实际的OAF页面TABLE的使用中,会有很多时候需要在前台页面中显示序号,虽然在sql中可以使用rownum来获得序号,但是rounum的优先级比order by 高,所以在语句中order by ...
随机推荐
- openssh傻瓜式一键自动化更新脚本(ubuntu系统)
鉴于openssh升级太过麻烦,这里自制了一个openssh自动化升级脚本,以root权限一键运行脚本即可: sh openssh-update.sh 注意:这里只使用于ubuntu系统,centos ...
- vue实现文本复制
一. 下载插件 npm install --save vue-clipboard2 二. main.js import VueClipBoard from 'vue-clipboard2' Vue.u ...
- Go面经 | 成都Go面试这么卷?卷王介绍:游戏行业 3年经验 20k+
Go最新面经分享:算法.并发模型.缓存落盘.etcd.actor模型.epoll等等... 本文先分享2段面经,文末总结了关键问题的复盘笔记.一定要看到最后! 求职者情况 分享一下好友的最新面经. 简 ...
- Log4j疯狂写日志问题排查
一.问题是怎么发现的 最近有个 Java 系统上线后不久就收到了磁盘使用率告警,磁盘使用率已经超过了 90% 以上,并且磁盘使用率还在不停增长. 二.问题带来的影响 由于服务器磁盘被打满,导致了系统正 ...
- Linux 内核音频数据传递主要流程 (下)
来而不往非礼也.前面看到了用户空间应用程序和 DMA buffer 之间交换数据,并更新 runtime->control->appl_ptr 指针的过程,这里看一下硬件设备驱动程序在完成 ...
- Nomad 系列-快速上手
系列文章 Nomad 系列文章 Nomad 重要术语 Nomad 安装设置相关术语 agent - 代理.Agent 是在 Server(服务器) 或 Client(客户端) 模式下运行的 Nomad ...
- 【反反爬】使用Jsoup爬取数据保存Excel
本文主要使用Jsoup爬取XXX房屋信息,抓取一些房屋信息,比如房屋楼盘.户型.价格.地址等信息,然后保存到Excel,便于对比和筛选,选出符合预期的好房. 注意,有些网站有防爬取机制,需要设置动 ...
- Spring中事务的传播行为有哪些?
Spring中事务的传播行为有哪些? 现在我们来谈一个场景,再来引出事务传播行为这个概念.现在有methodA( ) 和 methodB( ),而且两个方法都显示的开启了事务,那么methodB( ) ...
- 「luogu - P3158」「cqoi 2011」放棋子
link. 解读一下,大概就是一种颜色放进去就会占据一行一列,dp 状态就好想了:\(f_{i,j,k}\) 表示恰好用完前 \(k\) 种颜色的所有棋子,占据了 \(i\) 行 \(j\) 列的方案 ...
- 全局重写Element UI中的Message消息提示显示时长
需求:Message消息提示显示时长过长 环境:"vue": "2.6.12"."element-ui": "^2.15.6&qu ...