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 相关文章推荐
JS trim去空格的最佳实践
Oct 30 Javascript
JS、CSS加载中的小问题探讨
Nov 26 Javascript
javascript校验价格合法性实例(必须输入2位小数)
May 05 Javascript
用js闭包的方法实现多点标注冒泡示例
May 29 Javascript
Javascript中封装window.open解决不兼容问题
Sep 28 Javascript
JavaScript中实现继承的三种方式和实例
Jan 29 Javascript
Javascript闭包(Closure)详解
May 05 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
Oct 25 Javascript
js中获取键盘事件的简单实现方法
Oct 10 Javascript
详解Angular2学习笔记之Html属性绑定
Jan 03 Javascript
vue组件三大核心概念图文详解
May 30 Javascript
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
Aug 05 Vue.js
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
phpMyAdmin自动登录和取消自动登录的配置方法
2014/05/12 PHP
PHP实现通用alert函数的方法
2015/03/11 PHP
asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
2010/09/19 Javascript
jQuery 图片切换插件(代码比较少)
2012/05/07 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
2013/01/04 Javascript
jquery的ajax请求全面了解
2013/03/20 Javascript
javascript 获取图片尺寸及放大图片
2013/09/04 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
ajax异步请求详解
2017/01/06 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
浅析vue深复制
2018/01/29 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
vue双向绑定及观察者模式详解
2019/03/19 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
小程序实现图片预览裁剪插件
2019/11/22 Javascript
在weex中愉快的使用scss的方法步骤
2020/01/02 Javascript
JS运算符简单用法示例
2020/01/19 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
2020/10/29 Javascript
[00:32]2018DOTA2亚洲邀请赛Mineski出场
2018/04/04 DOTA
Python中字典映射类型的学习教程
2015/08/20 Python
python编程实现归并排序
2017/04/14 Python
浅谈numpy数组的几种排序方式
2017/12/15 Python
详解Python之unittest单元测试代码
2018/01/24 Python
用Python将一个列表分割成小列表的实例讲解
2018/07/02 Python
Python实现的连接mssql数据库操作示例
2018/08/17 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
对Python 多线程统计所有csv文件的行数方法详解
2019/02/12 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
2020/09/21 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
公司员工检讨书
2014/02/08 职场文书
静心口服夜广告词
2014/03/20 职场文书
员工工作心得体会
2019/05/07 职场文书
详解Apache SkyWalking 告警配置指南
2021/04/22 Servers
代码解析React中setState同步和异步问题
2021/06/03 Javascript