1.背景

选中表格中某一行,高亮显示,table表格数据变化后(删除某几条数据,不包括选中的删除), this.$refs.multipleTable.setCurrentRow(row),选中之前选中的行,可发现总是选中下一条的数据(选中的是2,删除3,4,5后再用this.$refs.multipleTable.setCurrentRow(row)选中2,结果选择的是6),控制台打印的数据是2的数据;

2.尝试

nextTick().setTimeout()都不能解决。明明this.$refs.multipleTable.setCurrentRow(row)传的数据是正确的,可页面就是选择另一行

3.源码

 setRowspanTrHoverState(cell, flag = 'enter') {const allRow = this.$el.querySelectorAll('tbody > tr.el-table__row');let rowspan = cell.getAttribute('rowspan');// 鼠标不再合并的单元格上直接中止if (rowspan === null) return;// 当前单元格所在行的序号let start = [].slice.call(allRow).indexOf(cell.parentNode);rowspan = +rowspan;// rowspan == 0表示从当前行一直都末尾都合并// rowspan == 1无意义,等同于未合并if (rowspan > 1 || rowspan === 0) {const end = rowspan > 0 ? rowspan + start - 1 : allRow.length - start;while (start <= end) {flag === 'enter'? addClass(allRow[start], 'hover-row'): removeClass(allRow[start], 'hover-row');start++;}}},

4.猥琐的结解决方案

 //监听tableData
watch: {tableData(val) {//this.curRow之前选中的行let curIndex = val.findIndex(item => item.id=== this.curRow.id)//如果之前选中的行被删除,默认选中第一行if (curIndex === -1) {this.$nextTick(() => {this.$refs.multipleTable.setCurrentRow(val[0])this.curRow = val[0]})} else {//如果之前选中的行没有被删除,则选中之前的行// 解决处理渲染错误的问题this.$nextTick(() => {let rows = this.$refs.multipleTable.$el.querySelectorAll('tbody > tr.el-table__row')if (rows.length) {rows = Array.from(rows)rows.forEach(item => item.classList.remove('current-row'))rows[curIndex].classList.add('current-row')}})}}},

antd 获取table选中行数据_element-ui 组件el-table默认选中行setCurrentRow采坑记相关推荐

  1. alter table 加多个字段_Vue 组件设计 - table不需要封装

    table 为什么要封装?封装 table 组件的目的是什么? 比如诸如 ant design 之类的 UI 组件库,你会发现虚拟滚动表格甚至不使用 table tbody 等标签实现的,那这个表单组 ...

  2. vue获取table一列数据_vue表格含有一列多选框,如何获取被选中的行的数据?

    1.仿照element-ui官网贴出的demo,table表格多选,选择多行数据时使用 Checkbox.但是无法获取this.multipleSelection的值.相关代码如下: 男 女 个人 团 ...

  3. table合并单元格_element ui el-table 合并单元格

    element ui table 的合并单元格 或者 测试 vue 文件 <template><div><el-table:data="tableData&qu ...

  4. React路由---react-router-dom、获取路由参数、ant design ui组件、fetch发送请求(默认不能跨域)、Switch...

    1.下载 yarn add react-router-dom --save 2.导入 import React from "react"; import { BrowserRout ...

  5. input change获取改变之前的值和改变之后的值_input[type=#x27;number#x27;],ios安卓采坑记

    近日,在为公司维护移动端H5代码的过程中,因为平台实现的差异,中间踩了不少坑.借此机会记录一下,也希望大家能有个了解,少走弯路.这一切的一切,都要从一个简单的需求开始说起. 某日,产品.测试反馈,对于 ...

  6. 获取bootgrid选中行数据_Easyui 取得选中行数据_EasyUI 教程

    示例 本实例演示如何取得选中行数据. 数据网格(datagrid)组件包含两种方法来检索选中行数据: getSelected:取得第一个选中行数据,如果没有选中行,则返回 null,否则返回记录. g ...

  7. jQuery实现table表格中行数据上下拖拽功能

    jQuery实现table表格中行数据上下拖拽功能 $("#table").sortable({cursor: "move",axis: "y&quo ...

  8. datagrid页面获取表单一条数据的例子

    [问题背景] 最近在做ITOO考评的时候想从页面获取表单选中的数据:   [代码] 在数据网格(datagrid)组件包含两种方法来检索选中行数据: getSelected:取得第一个选中行数据,如果 ...

  9. python利用表格中的某一个列_python取excel表格第一列数据?python操作excel,使用xlrd模块,获取某一列数据的语句为...

    用Python修改excel中一列数据 可以使用pandas库,先读取excel文件,然后使用pandas库来修改一列,然后写入文件即可. 怎样用python,读取excel中的一列数据 sheet. ...

最新文章

  1. 第拾壹章學習 Lisp 3rd Edition, Winston Horn
  2. 企业级java springboot b2bc商城系统开源源码二次开发-(四)断路器(Hystrix)
  3. jQuery源码分析-each函数
  4. 初一模拟赛总结(2019.6.1)
  5. c++反汇编与逆向分析 小结
  6. ERP之主生产计划MPS
  7. 一个高速公路交警的救命忠告
  8. 银河麒麟操作系统V10 安装KVM
  9. 苹果宣布推出新的Mac Mini和MacBook Pro与M2 Pro和M2 Max
  10. $作为分隔符的字符串如何进行切割
  11. rx7900xt和gtx3090ti差距 rx7900xt和gtx3090ti哪个好
  12. VMware+ubuntu+win10笔记本实现笔记本连接WIFI且ubuntu既可以上网又能连接开发板
  13. 安科瑞变电所运维云平台AcrelCloud-1000实时监测
  14. 33:判断字符串是否为回文
  15. 练手练到阅文集团作家中心了,python crawlspider 二维抓取学习
  16. Unity 投掷物体的实现
  17. Python爬虫 之 seleniun模块
  18. 做形态学方法的团队_2020年第十六届国际土壤微形态学会议(ICOSM)
  19. iPhone在微信下 输入框失去焦点后屏幕卡住问题处理
  20. 四个有用的vimium快捷

热门文章

  1. C语言灵魂——算法!
  2. sublime text学习
  3. linux安装交叉编译环境
  4. transporter上传卡正在交付_【iOS】Xcode11使用Transporter将APP上传到App Store,卡在正在验证APP...
  5. 和python哪个容易胖_为什么有些人特别容易胖?
  6. HTML多选mysql,html多选下拉框 | 学步园
  7. MySQL不走联合索引_mysql group by 多列优化思路?为什么不走联合索引?
  8. Python二级笔记(18,19合集知识点篇)
  9. Latex 生成的PDF增加行号 左右两边
  10. 查找指定日期数据所在分区数据