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 白痴级入门教程
Nov 11 Javascript
jQuery 验证插件 Web前端设计模式(asp.net)
Oct 17 Javascript
JAVASCRIPT函数作用域和提前声明 分享
Aug 22 Javascript
Js获取下拉框选定项的值和文本的实现代码
Feb 26 Javascript
javascript实现rgb颜色转换成16进制格式
Jul 10 Javascript
利用JavaScript阻止表单提交的两种方法
Aug 11 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
Sep 23 Javascript
Dropify.js图片宽高自适应的方法
Nov 27 Javascript
Node.js上传文件功能之服务端如何获取文件上传进度
Feb 05 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
Feb 19 jQuery
详解vue-cli+element-ui树形表格(多级表格折腾小计)
Apr 17 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
Aug 18 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
PHP5.3新特性小结
2016/02/14 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
善用事件代理,警惕闭包的性能陷阱。
2011/01/20 Javascript
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
浅谈js的url解析函数封装
2016/06/28 Javascript
Vue+Element使用富文本编辑器的示例代码
2017/08/14 Javascript
vue的基本用法与常见指令
2017/08/15 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
2018/09/07 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
python中解析json格式文件的方法示例
2017/05/03 Python
python使用tensorflow深度学习识别验证码
2018/04/03 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
python版飞机大战代码分享
2018/11/20 Python
pycharm中使用anaconda部署python环境的方法步骤
2018/12/19 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
利用python实现平稳时间序列的建模方式
2020/06/03 Python
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
高中生学习生活的自我评价
2013/10/09 职场文书
董事长秘书岗位职责
2013/11/29 职场文书
大学生的应聘自我评价
2013/12/13 职场文书
教师试用期自我鉴定
2014/02/12 职场文书
电台实习生求职信
2014/02/25 职场文书
专题组织生活会思想汇报
2014/10/01 职场文书
公务员处分决定书
2015/06/25 职场文书
公司行政管理制度范本
2015/08/05 职场文书
MySQL 数据类型选择原则
2021/05/27 MySQL
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs
Python如何利用pandas读取csv数据并绘图
2022/07/07 Python