【JS】element-ui table展示勾选状态

server/2025/2/8 8:18:37/

element-ui table 我将勾选的值存在multipleSelection中,在表格更新后,再遍历,来展示勾选状态。这样可行吗?

在使用 Element UI 的 el-table 组件时,将勾选的值存储在 multipleSelection 中,然后在表格更新后通过遍历这些值来展示勾选状态,这种做法理论上是可行的,但在实际操作中有一些需要注意的地方,下面为你详细分析。

实现思路

  1. 存储勾选的值:当用户在表格中勾选行时,el-table 会触发 selection-change 事件,你可以在这个事件的处理函数中将勾选的行数据存储到 multipleSelection 数组中。
  2. 表格更新:当表格数据更新时,需要重新设置表格的勾选状态。可以通过遍历 multipleSelection 数组,使用 el-tabletoggleRowSelection 方法来设置每一行的勾选状态。

示例代码

<template><div><el-button @click="updateTableData">更新表格数据</el-button><el-tableref="tableRef":data="tableData"@selection-change="handleSelectionChange"style="width: 100%"multiple><el-table-column type="selection" width="55"></el-table-column><el-table-column prop="name" label="姓名"></el-table-column><el-table-column prop="age" label="年龄"></el-table-column></el-table></div>
</template><script>javascript">
export default {data() {return {tableData: [{ id: 1, name: '张三', age: 20 },{ id: 2, name: '李四', age: 25 },{ id: 3, name: '王五', age: 30 }],multipleSelection: []};},methods: {handleSelectionChange(selection) {this.multipleSelection = selection;},updateTableData() {// 模拟表格数据更新this.tableData = [{ id: 1, name: '张三', age: 20 },{ id: 2, name: '李四', age: 25 },{ id: 3, name: '王五', age: 30 },{ id: 4, name: '赵六', age: 35 }];// 重新设置勾选状态this.$nextTick(() => {this.multipleSelection.forEach(item => {const targetRow = this.tableData.find(row => row.id === item.id);if (targetRow) {this.$refs.tableRef.toggleRowSelection(targetRow, true);}});});}}
};
</script>

代码解释

  1. handleSelectionChange 方法:当用户勾选或取消勾选表格行时,该方法会被调用,将当前勾选的行数据存储到 multipleSelection 数组中。
  2. updateTableData 方法:模拟表格数据更新,更新 tableData 数组。在数据更新后,使用 $nextTick 确保 DOM 已经更新,然后遍历 multipleSelection 数组,使用 toggleRowSelection 方法设置每一行的勾选状态。

注意事项

  • 数据唯一性:确保表格数据中的每一行都有一个唯一的标识(如示例中的 id),这样才能准确地找到需要勾选的行。
  • $nextTick 的使用:由于 Vue 的响应式原理,数据更新后 DOM 不会立即更新,因此需要使用 $nextTick 确保在 DOM 更新后再设置勾选状态。

通过以上方法,你可以在表格更新后保留之前的勾选状态。


http://www.ppmy.cn/server/165899.html

相关文章

【c++】构造函数

【c】构造函数 1.函数名称与类同名&#xff1a;构造函数名称必须与类名严格一致。 2.无返回值类型&#xff1a;无需声明返回类型&#xff08;包括 void&#xff09; 3.构造函数一般为公有来对数据成员进行初始化(对象一般不能调用构造函数 但是可以使用定位new来调用构造函数–…

Maven 依赖管理全面解析

目录 1. Maven 简介 2. 依赖的基本概念 依赖坐标 依赖范围 3. Maven 仓库 本地仓库 远程仓库 4. 依赖传递 5. 依赖冲突 6. 在 pom.xml 文件中管理依赖 基本依赖配置 依赖范围配置 依赖排除配置 依赖管理配置&#xff08;&#xff09; 1. Maven 简介 Maven 是一个…

06vue3实战-----项目开发准备

06vue3实战-----项目开发准备 1.CSS样式的重置1.1先引入第三方库normalize.css1.2自己写一些默认样式 2.路由配置2.1安装路由:2.2挂载路由:2.3配置路由 3.状态管理配置3.1安装pinia3.2挂载pinia3.3创建一个store文件3.4应用store 4.网络请求封装axios4.1再封装axios4.2使用封装…

【分布式一致性全知全会】(10)顺序一致性

引子 顺序一致性是并发系统的一个强安全属性。通俗地说&#xff0c;顺序一致性意味着操作似乎按某种全序进行&#xff0c;并且该顺序与每个单独进程上的操作顺序一致。 顺序一致性无法完全或持久地实现&#xff1b;如果发生网络分区&#xff0c;部分或全部节点将无法继续运行…

基于STM32设计的仓库环境监测与预警系统

目录 项目开发背景设计实现的功能项目硬件模块组成设计思路系统功能总结使用的模块的技术详情介绍总结 1. 项目开发背景 随着工业化和现代化的进程&#xff0c;尤其是在制造业、食品业、医药业等行业&#xff0c;仓库环境的监控和管理成为了至关重要的一环。尤其是在存储易腐…

超详细UE4(虚幻4)第一人称射击(FPS)游戏制作教程

超详细UE4(虚幻4)第一人称射击(FPS)游戏制作教程 引言 在游戏开发领域,第一人称射击(FPS)游戏一直是最受欢迎的类型之一。从经典的《反恐精英》(CS)到现代的《使命召唤》(Call of Duty),FPS游戏凭借其紧张刺激的游戏体验和高度沉浸感,吸引了无数玩家。如果你是一…

【重新认识C语言----结构体篇】

目录 -----------------------------------------begin------------------------------------- 引言 1. 结构体的基本概念 1.1 为什么需要结构体&#xff1f; 1.2 结构体的定义 2. 结构体变量的声明与初始化 2.1 声明结构体变量 2.2 初始化结构体变量 3. 结构体成员的访…

适用于 Windows 的 Zed 编辑器的非官方稳定版。通过 scoop 或 pwsh 脚本轻松安装。不隶属于 Zed Industries

一、软件介绍&#xff08;文末提供下载&#xff09; Zed&#xff0c;这是一款由 Atom 和 Tree-sitter 的创建者提供的高性能多人 Atom and Tree-sitter.。 二、macOS 和 Linux安装 在 macOS 和 Linux 上&#xff0c;您可以直接下载 Zed 或通过本地包管理器安装 Zed。 本地包…