ant design vue 表格table 默认勾选几项的操作


Posted in Javascript onOctober 31, 2020

为什么我同样的功能要用react 、vue 都写一遍 ?

啊我真是不是闲的蛋疼啊(~ o ~)~zZ

在 ant design vue 中,表格的第一列是联动的选择框

截一张官方文档图,图示最后一排就是禁用状态

ant design vue 表格table 默认勾选几项的操作

点击 checkbox 会触发onChange , 从而得到selectedRowKeys,selectedRowKeys就是选中的 key 数组。

onChange: (selectedRowKeys, selectedRows) => {
  console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);
 },

默认禁用disable 某项时,官方文档给出了例子:

rowSelection() {
   const { selectedRowKeys } = this;
   return {
    onChange: (selectedRowKeys, selectedRows) => {
     console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);
    },
    getCheckboxProps: record => ({
     props: {
      disabled: record.name === 'Disabled User', // Column configuration not to be checked
      name: record.name,
     }
    }),
   }
  }

主要是getCheckboxProps 里面的disabled 属性控制的。

默认选中某项时,需要 getCheckboxProps 里面的defaultChecked 属性控制:

业务场景:勾选了几项保存之后,下次进来编辑还是需要展示之前勾选的项,这时候就用到了默认勾选的属性

之前只贴了核心逻辑,好多人好像没看懂,我把整体的都贴上来了。

核心代码defaultChecked: selectedRowKeys.includes(record.id) 的思路就是所有表格里所有包含已选中项的id,都给他默认选中

data () {
  return {
   // ... 
   record: '',
   rowSelection: {
    selectedRowKeys: [],
    onChange: this.onSelectChange
   }
 },
 methods: {
   handleEdit (record) {
   //...省略我的业务逻辑
    if (record) {
    //...省略我的业务逻辑
    let selectedRowKeys =
     (record.roleIdList.length > 0 && record.roleIdList.split(',')) || [];
    this.rowSelection = {
     selectedRowKeys: selectedRowKeys,
     onChange: this.onSelectChange,
     getCheckboxProps: record => {
      return {
       props: {
        defaultChecked: selectedRowKeys.includes(record.id)
       }
      };
     }
    };
   } else {
    this.record = '';
    this.rowSelection = {
     selectedRowKeys: [],
     onChange: this.onSelectChange
    }
   }

 },
 onSelectChange (selectedRowKeys) {
   // 去重 Array.from(new Set(arr))
   this.rowSelection.selectedRowKeys = Array.from(new Set(selectedRowKeys));
 }
 }

ant design vue 版本和 react 版本写法略有不同,disabled 和 defaultChecked 都挂在了props 属性下。

补充知识:Ant-Design-Pro中Table组件rowSelection方法的一些坑

如下所示:

<Table rowSelection={rowSelection} columns={columns} dataSource={data} />

在 <Table/> 组件中有 rowSelection={rowSelection} 方法,可以让Table的第一列成为联动的选择框。

API中说到通过 rowSelection.selectedRowKeys 来控制选中项。比较坑的是,selectedRowKeys 控制的只是dataSource当前的顺序编号。

一定要加上rowKey="id"或者rowKey={record => record.id},后来经过多次调试发现很多BUG都跟这个参数有关,不然会导致联动的选择框状态异常。id可以自定义为dataSource中的某个值。

以上这篇ant design vue 表格table 默认勾选几项的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery UI的拖拽功能实现方法小结
Mar 14 Javascript
JavaScript 产生不重复的随机数三种实现思路
Dec 13 Javascript
jquery 实现input输入什么div图层显示什么
Jun 15 Javascript
javascript结合fileReader 实现上传图片
Jan 30 Javascript
JavaScript编程中window的location与history对象详解
Oct 26 Javascript
基于jQuery实现音乐播放试听列表
Apr 14 Javascript
Bootstrap框架实现广告轮播效果
Nov 28 Javascript
vue v-on监听事件详解
May 17 Javascript
AngularJS实现单一页面内设置跳转路由的方法
Jun 28 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
Oct 09 Javascript
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
Sep 11 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
Sep 14 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
Oct 31 #Javascript
Ant design vue中的联动选择取消操作
Oct 31 #Javascript
Ant Design Vue table中列超长显示...并加提示语的实例
Oct 31 #Javascript
vue中可编辑树状表格的实现代码
Oct 31 #Javascript
Ant Design Pro 之 ProTable使用操作
Oct 31 #Javascript
react ant Design手动设置表单的值操作
Oct 31 #Javascript
解决pycharm双击但是无法打开的情况
Oct 31 #Javascript
You might like
十天学会php(1)
2006/10/09 PHP
基于数据库的在线人数,日访问量等统计
2006/10/09 PHP
粗略计算在线时间,bug:ip相同
2006/12/09 PHP
ubuntu12.04使用c编写php扩展模块教程分享
2013/12/25 PHP
PHP将进程作为守护进程的方法
2015/03/19 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
使用composer 安装 laravel框架的方法图文详解
2019/08/02 PHP
JavaScript中的View-Model使用介绍
2011/08/11 Javascript
jQuery中jqGrid分页实现代码
2011/11/04 Javascript
子窗体与父窗体传值示例js代码
2013/08/01 Javascript
javascript获取鼠标点击元素对象(示例代码)
2013/12/20 Javascript
用javascript关闭本窗口技巧小结
2014/09/05 Javascript
微信JSSDK上传图片
2015/08/23 Javascript
Javascript模仿淘宝信用评价实例(附源码)
2015/11/26 Javascript
剖析Node.js异步编程中的回调与代码设计模式
2016/02/16 Javascript
js利用正则表达式检验输入内容是否为网址
2016/07/05 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的方法
2016/11/29 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
get  post jsonp三种数据交互形式实例详解
2017/08/25 Javascript
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
微信小程序之判断页面滚动方向的示例代码
2018/08/30 Javascript
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
2014/01/19 Python
Python正则表达式匹配中文用法示例
2017/01/17 Python
python线程中同步锁详解
2018/04/27 Python
Windows下将Python文件打包成.EXE可执行文件的方法
2018/08/03 Python
python opencv判断图像是否为空的实例
2019/01/26 Python
Python学习笔记之lambda表达式用法详解
2019/08/08 Python
用python计算文件的MD5值
2020/12/23 Python
优秀幼教自荐信
2014/02/03 职场文书
小学毕业感言150字
2014/02/05 职场文书
毕业寄语大全
2014/04/09 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
小学数学新课改心得体会
2016/01/22 职场文书
党员公开承诺书(2016最新版)
2016/03/24 职场文书