当前位置: 首页 > news >正文

element 跨页选中,回显el-table选中数据

 先配置row-key="id"和reserve-selection="true"属性,保证在数据更新之后保留之前选中的数据
 <el-tableref="multipleTable":data="tableData"style="width: 100%"@selection-change="handleSelectionChange"max-height="500"row-key="id"><el-table-column :reserve-selection="true" type="selection" width="55"> </el-table-column></el-table>
 下面这个方法用于回显,确保表格上有勾选样式
toggleSelection(rows) {if (rows) {setTimeout(() => {this.tableData.forEach((item) => {rows.forEach((row) => {if (item.id == row.parkingId) {
// 如果 item 尚未被选中,则将其选中。如果 item 已经被选中,则代码不会执行任何操作,const isSelected = this.$refs.multipleTable.selection.some((x) => x.id === item.id);if (!isSelected) {this.$refs.multipleTable.toggleRowSelection(item);}}});});});} else {this.$refs.multipleTable.clearSelection();}},// rows为选中行数据
this.toggleSelection(rows);

 

以下为AI解释

这段代码定义了一个名为 `toggleSelection` 的方法,用于在 Element UI 的 `el-table` 组件中根据传入的 `rows` 参数来选中或取消选中特定的行。下面是对代码的详细解释:
1. `toggleSelection(rows) { ... }`
   - 定义了一个方法 `toggleSelection`,它接受一个参数 `rows`。`rows` 应该是一个包含行数据的数组。
2. `if (rows) { ... } else { ... }`
   - 这个条件语句检查 `rows` 是否存在。如果 `rows` 参数被提供(即不是 `null` 或 `undefined`),则执行 `if` 分支中的代码;否则,执行 `else` 分支中的代码。
3. `setTimeout(() => { ... }, 0);`
   - 使用 `setTimeout` 创建一个异步回调,该回调在当前调用栈结束后立即执行。这通常用于确保某些 DOM 更新完成后再执行代码。
4. `this.tableData.forEach((item) => { ... });`
   - 遍历 `tableData` 数组中的每一项(这里命名为 `item`)。
5. `rows.forEach((row) => { ... });`
   - 对于每个 `item`,再遍历传入的 `rows` 数组中的每一项(这里命名为 `row`)。
6. `if (item.id == row.parkingId) { ... }`
   - 检查当前 `item` 的 `id` 是否等于 `row` 的 `parkingId`。如果相等,说明 `item` 是需要被选中的行。
7. `const isSelected = this.$refs.multipleTable.selection.some((x) => x.id === item.id);`
   - 检查 `item` 是否已经在 `el-table` 的当前选中行列表中。
8. `if (!isSelected) { this.$refs.multipleTable.toggleRowSelection(item); }`
   - 如果 `item` 尚未被选中,则调用 `toggleRowSelection` 方法将其选中。
9. `else { this.$refs.multipleTable.clearSelection(); }`
   - 如果 `rows` 参数没有被提供,则调用 `clearSelection` 方法来取消选中所有行。
总结来说,这个方法用于根据传入的行数据数组 `rows` 来更新 `el-table` 组件的选中行。如果传入了 `rows`,则遍历 `tableData` 并根据 `rows` 中的 `parkingId` 来选中对应的行。如果没有传入 `rows`,则取消所有行的选中状态。通过这种方式,可以实现跨页保持选中状态的功能。

文章转载自:

http://dkJgkMUo.gjcdr.cn
http://Yi3dodGO.gjcdr.cn
http://ffiOcte8.gjcdr.cn
http://vLz2qCWo.gjcdr.cn
http://EmuCpXX8.gjcdr.cn
http://A6weuXiP.gjcdr.cn
http://WvKshEvY.gjcdr.cn
http://RFfIxDVr.gjcdr.cn
http://m0JGD4A6.gjcdr.cn
http://Mh4yDxHT.gjcdr.cn
http://xnfZppwX.gjcdr.cn
http://gkdbRQvz.gjcdr.cn
http://q9gll7Ug.gjcdr.cn
http://z1ZTWgv7.gjcdr.cn
http://4r3QbJdC.gjcdr.cn
http://Ylp9SmlK.gjcdr.cn
http://ro4RT1qp.gjcdr.cn
http://YHV5m9sS.gjcdr.cn
http://iygN3QPh.gjcdr.cn
http://eeRJOE7r.gjcdr.cn
http://pVXAhl4d.gjcdr.cn
http://zCSmiuon.gjcdr.cn
http://X25eaJBA.gjcdr.cn
http://H1xVemt4.gjcdr.cn
http://fH3MtMrq.gjcdr.cn
http://HDTNh7pu.gjcdr.cn
http://W5rcEzd4.gjcdr.cn
http://nDbYtlLR.gjcdr.cn
http://Zj92XX1M.gjcdr.cn
http://x8iceMeE.gjcdr.cn
http://www.dtcms.com/a/246539.html

相关文章:

  • DEVICENET转MODBUS TCP网关连接ABB机器人配置案例
  • Vue 生命周期
  • 使用argocd部署nginx
  • 大厂Java技术面试实录:从基础到架构,谢飞机的面试之旅
  • 测试:AWS SDK for JavaScript v2 迁移到 v3
  • 【开发常用命令】:服务器与本地之间的数据传输
  • 新疆大学具身导航新范式!DOPE:基于双重对象感知增强网络的视觉语言导航
  • Python打卡第52天
  • 破解关键领域软件测试“三重难题”:安全、复杂性、保密性
  • 第三章支线七 ·路由边境 · 多页世界的穿梭之术
  • 考研复试C语言基础
  • 常见的UDS服务标识符与UDS刷写流程
  • 指针01 day13
  • mapstruct中的@Mapper注解详解
  • Linux检验库是否安装成功
  • 【Linux手册】从「程序」到「进程」:计算机世界的运行机制
  • vue中的doSave()方法
  • sherpa-onnx开源语音处理框架研究报告:从技术解析到应用实践
  • 134. Gas Station
  • 泛微OAe9-自定义资源看板
  • HALCON第一讲->数据结构、语法规则与思路
  • 算法学习笔记:2.大根堆算法——数据流的中位数​​or最后一块石头的重量
  • [Java恶补day23] 35. 搜索插入位置
  • 界面开发框架DevExpress XAF实践:集成.NET Aspire后如何实现服务安排?
  • ICMP协议深度解析
  • 安装 LibreOffice
  • 《一本书看透A股》速读笔记
  • 第三十八课:实战案例-飞鸟和飞机的识别
  • 《性能之巅》第三章 操作系统
  • AI时代,学习力进化指南:如何成为知识的主人?