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年份下拉列表框内容为当前年份及前后50年
May 28 Javascript
jQuery队列操作方法实例
Jun 11 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
Jan 27 Javascript
js格式化输入框内金额、银行卡号
Feb 01 Javascript
vue分类筛选filter方法简单实例
Mar 30 Javascript
JS优化与惰性载入函数实例分析
Apr 06 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
Jun 05 Javascript
Angular angular-file-upload文件上传的示例代码
Aug 23 Javascript
记一次webapck4 配置文件无效的解决历程
Sep 19 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
Jun 20 Javascript
ElementUI多个子组件表单的校验管理实现
Nov 07 Javascript
Vue实现手机计算器
Aug 17 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 split汉字
2009/06/05 PHP
需要注意的几个PHP漏洞小结
2012/02/05 PHP
利用php实现禁用IE和火狐的缓存问题
2012/12/03 PHP
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
yii实现model添加默认值的方法(2种方法)
2016/01/06 PHP
PHP延迟静态绑定使用方法实例解析
2020/09/05 PHP
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
2014/03/18 Javascript
JavaScript实现多种排序算法
2016/02/24 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
vue-router动态设置页面title的实例讲解
2018/08/30 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
2018/12/22 Javascript
Vue+element 解决浏览器自动填充记住的账号密码问题
2019/06/11 Javascript
vue实现二级导航栏效果
2019/10/19 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
python实现DNS正向查询、反向查询的例子
2014/04/25 Python
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
利用Python脚本生成sitemap.xml的实现方法
2017/01/31 Python
python斐波那契数列的计算方法
2018/09/27 Python
python  文件的基本操作 菜中菜功能的实例代码
2019/07/17 Python
检测tensorflow是否使用gpu进行计算的方式
2020/02/03 Python
用CSS3的box-reflect设置文字倒影效果的方法讲解
2016/03/07 HTML / CSS
利用CSS3把图片变成灰色模式的实例代码
2016/09/06 HTML / CSS
webapp字号大小跟随系统字号大小缩放的示例代码
2018/12/26 HTML / CSS
意大利在线药房:shop-farmacia.it
2019/03/12 全球购物
法国亚马逊官方网站:Amazon.fr
2020/12/19 全球购物
会计专业毕业生自我鉴定
2013/10/29 职场文书
数控技术专业推荐信
2013/11/01 职场文书
《谁的本领大》教后反思
2014/04/25 职场文书
《风筝》教学反思
2016/02/23 职场文书
公文写作:工伤事故分析报告怎么写?
2019/11/05 职场文书
Go遍历struct,map,slice的实现
2021/06/13 Golang
Python OpenCV超详细讲解调整大小与图像操作的实现
2022/04/02 Python
多台电脑共享文件怎么设置?多台电脑共享文件操作教程
2022/04/08 数码科技