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 相关文章推荐
自定义jQuery选项卡插件实例
Mar 27 Javascript
javascript中tostring()和valueof()的用法及两者的区别
Nov 16 Javascript
解决JavaScript数字精度丢失问题的方法
Dec 03 Javascript
jQuery实现简单的DIV拖动效果
Feb 19 Javascript
javascript实现获取指定精度的上传文件的大小简单实例
Oct 25 Javascript
js事件源window.event.srcElement兼容性写法(详解)
Nov 25 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
Dec 25 Javascript
jQuery实现基本隐藏与显示效果的方法详解
Sep 05 jQuery
解决使用layui对select append元素无效或者未及时更新的问题
Sep 18 Javascript
vue点击按钮动态创建与删除组件功能
Dec 29 Javascript
javascript 代码是如何被压缩的示例代码
May 06 Javascript
linux服务器快速卸载安装node环境(简单上手)
Feb 22 Javascript
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中使用excel的简单介绍
2013/08/02 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
PHP分页显示的方法分析【附PHP通用分页类】
2018/05/10 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
基于jquery实现状态限定编辑的代码
2012/02/11 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
node.js中的socket.io的广播消息
2014/12/15 Javascript
jquery跟随屏幕滚动效果的实现代码
2016/04/13 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
基于javascript实现按圆形排列DIV元素(三)
2016/12/02 Javascript
Angular下H5上传图片的方法(可多张上传)
2017/01/09 Javascript
jQuery图片轮播功能实例代码
2017/01/29 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
Vue2.0权限树组件实现代码
2017/08/29 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
2019/07/29 Javascript
Python 变量类型及命名规则介绍
2013/06/08 Python
Python中random模块生成随机数详解
2016/03/10 Python
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
python逐行读写txt文件的实例讲解
2018/04/03 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
2019/12/10 Python
解决django中form表单设置action后无法回到原页面的问题
2020/03/13 Python
Mio Skincare法国官网:身体紧致及孕期身体护理
2018/04/04 全球购物
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
波兰家居饰品和厨房配件网上商店:Maleomi
2020/12/15 全球购物
优秀应届毕业生自荐信
2013/11/16 职场文书
国窖1573广告词
2014/03/21 职场文书
铁路安全事故反思
2014/04/26 职场文书
汽车4S店前台接待岗位职责
2015/04/03 职场文书
创业计划书之书店
2019/09/10 职场文书
少年的你:世界上没有如果,要在第一次就勇敢的反抗
2019/11/20 职场文书
HTML页面滚动时部分内容位置固定不滚动的实现
2021/04/14 HTML / CSS
redis 解决库存并发问题实现数量控制
2022/04/08 Redis
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL