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 相关文章推荐
学习YUI.Ext第五日--做拖放Darg&amp;Drop
Mar 10 Javascript
网络之美 JavaScript中Get和Set访问器的实现代码
Sep 19 Javascript
js中settimeout方法加参数
Feb 28 Javascript
javascript浏览器兼容教程之事件处理
Jun 09 Javascript
jQuery中:header选择器用法实例
Dec 29 Javascript
AngularJS删除路由中的#符号的方法
Sep 20 Javascript
详解在Angularjs中ui-sref和$state.go如何传递参数
Apr 24 Javascript
vue如何从接口请求数据
Jun 22 Javascript
vue多级复杂列表展开/折叠及全选/分组全选实现
Nov 05 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
Apr 29 Javascript
小程序实现分类页
Jul 12 Javascript
微信小程序实现比较功能的方法汇总(五种方法)
Mar 07 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-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
2011/08/15 PHP
php Session无效分析资料整理
2016/11/29 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
二级域名转向类
2006/11/09 Javascript
php 中序列化和json使用介绍
2013/07/08 Javascript
利用Jquery实现可多选的下拉框
2014/02/21 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
js中this用法实例详解
2015/05/05 Javascript
对js中回调函数的一些看法
2016/08/29 Javascript
js转html实体的方法
2016/09/27 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
2016/10/26 Javascript
BootStrap 实现各种样式的进度条效果
2016/12/07 Javascript
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
泛谈JS逻辑判断选择器 || &amp;&amp;
2019/05/24 Javascript
vue从一个页面跳转到另一个页面并携带参数的解决方法
2019/08/12 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
jQuery 淡入/淡出效果函数用法分析
2020/05/19 jQuery
ES6 十大特性简介
2020/12/09 Javascript
Python之循环结构
2019/01/15 Python
浅谈Python爬虫基本套路
2019/03/25 Python
python按比例随机切分数据的实现
2019/07/11 Python
Django使用Channels实现WebSocket的方法
2019/07/28 Python
利用pandas向一个csv文件追加写入数据的实现示例
2020/04/23 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
全球最大的跑步用品商店:Road Runner Sports
2016/09/11 全球购物
企业厂长岗位职责
2013/12/17 职场文书
元旦晚会邀请函
2014/02/01 职场文书
八一演出活动方案
2014/02/03 职场文书
歌颂祖国演讲稿
2014/05/04 职场文书
自习课吵闹检讨书范文
2014/09/26 职场文书
奥巴马开学演讲观后感
2015/06/12 职场文书
铁人观后感
2015/06/16 职场文书
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
2022/04/07 Servers
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android