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 相关文章推荐
JavaScript初学者需要了解10个小技巧
Aug 25 Javascript
教你如何自定义百度分享插件以及bshare分享插件的分享按钮
Jun 20 Javascript
js实现左侧网页tab滑动门效果代码
Sep 06 Javascript
jQuery带进度条全屏图片轮播特效代码分享
Jun 28 Javascript
JS实现Fisheye效果动感放大菜单代码
Oct 21 Javascript
Javascript+CSS3实现进度条效果
Oct 28 Javascript
jQuery编写网页版2048小游戏
Jan 06 Javascript
浅谈PDF.js使用心得
Jun 07 Javascript
微信小程序基于picker实现级联菜单
Feb 15 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
Mar 03 Javascript
jQuery实现日历效果
Sep 11 jQuery
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
Nov 16 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 echo, print, print_r, sprintf, var_dump, var_expor的使用区别
2013/06/20 PHP
php数据类型判断函数有哪些
2013/09/23 PHP
PHP微信支付实例解析
2016/07/22 PHP
PHP二分查找算法示例【递归与非递归方法】
2016/09/29 PHP
js修改input的type属性问题探讨
2013/10/12 Javascript
jQuery针对各类元素操作基础教程
2014/08/29 Javascript
让IE8浏览器支持function.bind()方法
2014/10/16 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
JS实现的自动打字效果示例
2017/03/10 Javascript
bootstrap警告框示例代码分享
2017/05/17 Javascript
20170918 前端开发周报之JS前端开发必看
2017/09/18 Javascript
vue中使用protobuf的过程记录
2018/10/26 Javascript
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
Vue 通过公共字段,拼接两个对象数组的实例
2019/11/07 Javascript
vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】
2020/03/06 Javascript
python解析发往本机的数据包示例 (解析数据包)
2014/01/16 Python
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
python通过socket实现多个连接并实现ssh功能详解
2017/11/08 Python
Python中return self的用法详解
2018/07/27 Python
python中scikit-learn机器代码实例
2018/08/05 Python
pandas 快速处理 date_time 日期格式方法
2018/11/12 Python
python3使用pandas获取股票数据的方法
2018/12/22 Python
Django2 连接MySQL及model测试实例分析
2019/12/10 Python
基于python使用tibco ems代码实例
2019/12/20 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
关于前端上传文件全面基础扫盲贴(入门)
2019/08/01 HTML / CSS
吉力贝官方网站:Jelly Belly
2019/03/11 全球购物
大学生职业规划书的范本
2014/02/18 职场文书
小区推广策划方案
2014/06/06 职场文书
2015年学校减负工作总结
2015/05/19 职场文书
中国合伙人观后感
2015/06/02 职场文书
学会感恩主题班会
2015/08/12 职场文书
2016大学生暑期三下乡心得体会
2016/01/23 职场文书
导游经典开场白——导游词
2019/04/17 职场文书