vue用ant design中table表格,点击某行时触发的事件操作


Posted in Javascript onOctober 28, 2020

使用customRow 设置行属性,写对应事件

:customRow="rowClick"

然后在data里面写

rowClick: record => ({
  // 事件
  on: {
   click: () => {
   // 点击改行时要做的事情
   // ......
   console.log(record, 'record')
   }
  }
  })

在官方文档中也写的很清楚

vue用ant design中table表格,点击某行时触发的事件操作

补充知识:Ant-Design-Vue table 合并单元格,并且添加点击事件

点击行,有一个customRow。可以配置点击事件。

单元格的自定义分为两种方式。

一种是:通过template标签。

html部分

// text为dataIndex中的值,data为行数据,index为索引值
<template slot="xxx" slot-scope="text,data,index">
{{text|xxxFormat}}
</template>

js部分

//table的columns设定,customRender对应着html中的slot值
columns = [
 { title: "列名", dataIndex: "aaa", scopedSlots: { customRender: 'xxx' }},
]

一种是:customRender。下面给出来的是合并单元格的一段代码。

vm.columns = [
 {
  title: "列名", dataIndex: "aaa",
  customRender: (text, row, index) => {
   var obj = {
    children: text,
    attrs: {}
   }
   if (index % 2 == 0) {
    obj.attrs.rowSpan = 2;
   } else {
    obj.attrs.rowSpan = 0;
   }
   return obj;
  }
 },
];

在合并单元格的代码中可以看出。obj实际上操作的是td的相关属性。children中的内容是放在td中的。这个内容就类似于上面的template。因为能操作td以及内部的内容,所以这种方法的灵活性更加高。对于单元格合并这种操作来说,只能通过customRender来了。

虽然官方给了很多在table中添加a标签的例子,不过都没有对点击事件填写相应的方法调用。

如果只是简单的点击事件,可以通过简单地template调用点击事件。也可以方便的传参数。

<template slot="xxx" slot-scope="text,data,index">
<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click="clickMe">你点我呀</a>
</template>

知识点,来了,如果是合并单元格里面添加点击事件呢?

第一次 尝试

customRender: (text, row, index) => {
 var obj = {
  children: <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" click='cityClick(text)'>{text}</a>,
  attrs: {}
 };
 if (index % 2 == 0) {
  obj.attrs.rowSpan = 2;
 } else {
  obj.attrs.rowSpan = 0;
 }
 return obj;
},

自己写的时候,心里就觉得别扭,click='cityClick(text)'这个地方值能传进去么?

试了下,呵呵哒,方法都不好使,也不报错。。

第二次尝试,借鉴下customRow

vue用ant design中table表格,点击某行时触发的事件操作

customRender: (text, row, index) => {
 var obj = {
  children: <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >{text}</a>,
  attrs: {},
  on: {
   click: () => {
    this.$message.info(text);
   }
  }
 };
 if (index % 2 == 0) {
  obj.attrs.rowSpan = 2;
 } else {
  obj.attrs.rowSpan = 0;
 }
 return obj;
},

写完之后,自我感觉还是不错的,试一下。

不动如山。。。

第三次尝试,祭出大杀器 vue-jsx

children不能简简单单的写个<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >{text}</a>,得给他翻译翻译

vue用ant design中table表格,点击某行时触发的事件操作

虚拟DOM不错的样子

var vm = this;
const columns = [
 { title: 'Name', dataIndex: 'name' },
 {
  title: 'City',
  dataIndex: 'city',
  customRender: (text, row, index) => {
   var child = vm.$createElement("a", {
    domProps: {
     innerHTML: text
    },
    on: {
     click: function () {
      vm.cityClick(text);
     }
    }
   });
   var obj = {
    children: child,
    attrs: {},
   };
   if (index % 2 == 0) {
    obj.attrs.rowSpan = 2;
   } else {
    obj.attrs.rowSpan = 0;
   }
   return obj;
  },
 },

再单独把实现方法拿出来

var child = vm.$createElement("a", {
 domProps: {
  innerHTML: text
 },
 on: {
  click: function () {
   vm.cityClick(text);
  }
 }
});

看看效果

vue用ant design中table表格,点击某行时触发的事件操作

完美~~~

以上这篇vue用ant design中table表格,点击某行时触发的事件操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
浅析document.createDocumentFragment()与js效率
Jul 08 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
Nov 15 Javascript
javascript文件中引用依赖的js文件的方法
Mar 17 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
Dec 15 Javascript
javascript 分号总结及详细介绍
Sep 24 Javascript
jQuery绑定事件的四种方式介绍
Oct 31 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
Dec 08 Javascript
jQuery插件zTree实现单独选中根节点中第一个节点示例
Mar 08 Javascript
前端页面文件拖拽上传模块js代码示例
May 19 Javascript
Vue.js实现大屏数字滚动翻转效果
Nov 29 Javascript
jQuery实现视频展示效果
May 30 jQuery
vue-cli4.5.x快速搭建项目
May 30 Vue.js
react antd表格中渲染一张或多张图片的实例
Oct 28 #Javascript
js实现淘宝浏览商品放大镜功能
Oct 28 #Javascript
js实现详情页放大镜效果
Oct 28 #Javascript
用js实现放大镜效果
Oct 28 #Javascript
如何在 ant 的table中实现图片的渲染操作
Oct 28 #Javascript
WebStorm中如何将自己的代码上传到github示例详解
Oct 28 #Javascript
原生JS生成指定位数的验证码
Oct 28 #Javascript
You might like
php中将数组存到文件里的实现代码
2012/01/19 PHP
PHP解析目录路径的3个函数总结
2014/11/18 PHP
PHP中开启gzip压缩的2种方法
2015/01/31 PHP
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
几行代码轻松搞定jquery实现flash8类似的连接效果
2007/05/03 Javascript
Mootools 1.2教程 滑动效果(Slide)
2009/09/15 Javascript
js 全兼容可高亮二级缓冲折叠菜单
2010/06/04 Javascript
javascript中实现兼容JAVA的hashCode算法代码分享
2020/08/11 Javascript
jQuery动画特效实例教程
2014/08/29 Javascript
读Javascript高性能编程重点笔记
2016/12/21 Javascript
JavaScript字符串对象
2017/01/14 Javascript
Echarts实现单条折线可拖拽效果
2019/12/19 Javascript
JavaScript实现打砖块游戏
2020/02/25 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
Openlayers绘制聚合标注
2020/09/28 Javascript
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python中使用gzip模块压缩文件的简单教程
2015/04/08 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
单链表反转python实现代码示例
2018/02/08 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
python生成九宫格图片
2018/11/19 Python
Python面向对象程序设计之私有属性及私有方法示例
2019/04/08 Python
基于css3仿造window7的开始菜单
2010/06/17 HTML / CSS
css3 transform及原生js实现鼠标拖动3D立方体旋转
2016/06/20 HTML / CSS
Html5页面上如何禁止手机虚拟键盘弹出
2020/03/19 HTML / CSS
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
几道PHP的面试题
2012/05/19 面试题
局域网定义和特性
2016/01/23 面试题
JSF界面控制层技术
2013/06/17 面试题
大学自主招生自荐信范文
2014/02/26 职场文书
特教教师先进事迹
2014/05/21 职场文书
个人租房协议书
2014/11/28 职场文书
大学生个人学年总结
2015/02/15 职场文书
小学教师岗位职责
2015/04/02 职场文书