本文主要内容为ElementPlus el-table后端分页,分页多选功能实现(解决点击下一页后上一页已勾选的数据消失;解决表格数据缓存不清空问题)

主要用到两个重要的属性:
row-key
在这里插入图片描述

reserve-selection
在这里插入图片描述

话不多说,直接上代码:

//首先在el-table中添加这些属性

// el-table 中的:row-key 一般与:reverse-selection 一起使用
function getRowKey(row: any) {
  return row.taskID;
}

function handleSelectionChange(val: string | any[]) {
  selectedToRelateTaskList = []
  for (let i = 0; i < val.length; i++) {
    console.log('选中了val是=------- ' , val[i])
    selectedToRelateTaskList.push(val[i].taskID)
  }
  console.log('selectedToRelateTaskList=------- ' ,selectedToRelateTaskList)
}

selectedToRelateTaskList 这个列表表示我们选中的所有数据。
这样即使我们的分页是后端请求的,也可以进行多选展示。

!!!!后续遇到的问题:
选中几项之后提交,再次打开弹窗分页列表。重新选中一项,之前提交的数据也会加入到selectedToRelateTaskList列表里面。
加了判断也不管用。

解决办法:

  1. router.go(0) 刷新整个页面。
  2. 清除reverse-selection缓存:(我用的是typeScript,如果用javaScript的小伙伴可以使用this.$refs来拿到变量哈)
    a. 定义一个变量
    在这里插入图片描述
    b. 初始化在这里插入图片描述
    c. 在使用完之后清除缓存,因为table不会自己清除的!!!!在这里插入图片描述
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐