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

Element Plus el-table 默认勾选行的方法

方法一:使用 row-key和 reserve-selection

<template><el-tableref="multipleTableRef":data="tableData"style="width: 100%"@selection-change="handleSelectionChange"row-key="id"  <!-- 必须指定row-key -->><el-table-column type="selection" width="55" :reserve-selection="true" /><el-table-column prop="date" label="Date" width="180" /><el-table-column prop="name" label="Name" width="180" /><el-table-column prop="address" label="Address" /></el-table>
</template><script setup>
import { ref, onMounted } from 'vue'const multipleTableRef = ref()
const tableData = ref([{id: 1,date: '2016-05-03',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{id: 2,date: '2016-05-02',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{id: 3,date: '2016-05-04',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',}
])// 默认选中的行ID
const defaultSelectedIds = [1, 3]onMounted(() => {// 遍历表格数据,找到需要默认选中的行tableData.value.forEach(row => {if (defaultSelectedIds.includes(row.id)) {// 使用toggleRowSelection方法选中行multipleTableRef.value.toggleRowSelection(row, true)}})
})const handleSelectionChange = (val) => {console.log('当前选中:', val)
}
</script>

方法二:使用 select和 select-all事件

<template><el-tableref="multipleTableRef":data="tableData"style="width: 100%"@select="handleSelect"@select-all="handleSelectAll"row-key="id"><el-table-column type="selection" width="55" /><!-- 其他列 --></el-table>
</template><script setup>
import { ref, onMounted } from 'vue'const multipleTableRef = ref()
const tableData = ref([...]) // 同上onMounted(() => {// 默认选中ID为1和3的行const rowsToSelect = tableData.value.filter(row => [1, 3].includes(row.id))rowsToSelect.forEach(row => {multipleTableRef.value.toggleRowSelection(row, true)})
})const handleSelect = (selection, row) => {console.log('选中变化:', selection)
}const handleSelectAll = (selection) => {console.log('全选变化:', selection)
}
</script>

方法三:使用 v-model 绑定选中数据

<template><el-table:data="tableData"style="width: 100%"row-key="id"@selection-change="handleSelectionChange"><el-table-columntype="selection"width="55"v-model="selectedRows":reserve-selection="true"/><!-- 其他列 --></el-table>
</template><script setup>
import { ref, onMounted, watch } from 'vue'const tableData = ref([...]) // 同上
const selectedRows = ref([])// 设置默认选中的行
onMounted(() => {selectedRows.value = tableData.value.filter(row => [1, 3].includes(row.id))
})const handleSelectionChange = (val) => {console.log('选中变化:', val)
}
</script>

方法四:分页表格保留选中状态

<template><el-tableref="multipleTableRef":data="currentPageData"style="width: 100%"row-key="id"@selection-change="handleSelectionChange"><el-table-column type="selection" width="55" :reserve-selection="true" /><!-- 其他列 --></el-table><el-pagination@current-change="handleCurrentChange":current-page="currentPage":page-size="pageSize":total="total"/>
</template><script setup>
import { ref, computed } from 'vue'const multipleTableRef = ref()
const tableData = ref([...]) // 所有数据
const currentPage = ref(1)
const pageSize = ref(10)
const selectedRows = ref([])const total = computed(() => tableData.value.length)
const currentPageData = computed(() => {const start = (currentPage.value - 1) * pageSize.valueconst end = start + pageSize.valuereturn tableData.value.slice(start, end)
})// 默认选中某些行
onMounted(() => {const defaultSelectedIds = [1, 3, 5]selectedRows.value = tableData.value.filter(row => defaultSelectedIds.includes(row.id))
})const handleCurrentChange = (page) => {currentPage.value = page
}const handleSelectionChange = (val) => {selectedRows.value = val
}
</script>

http://www.dtcms.com/a/495199.html

相关文章:

  • Linux系统函数opendir、closedir、readdir详解及案例(自定义ls工具)
  • 便捷网站建设哪家便宜网站建没有前景
  • 接口测试 | Postman的高级用法的测试使用
  • TR3--Transformer之pytorch复现
  • Traccar本地文件包含漏洞(CVE-2025-61666)
  • 建站网站推荐icp域名备案查询系统
  • 智能美颜引擎:美颜SDK如何实现自适应芯片性能优化
  • Java中的boolean与Boolean
  • Flutter高级进阶教程(视频教程)
  • Rocketmq 分布式事务 两阶段提交
  • 骑行,团骑和独骑冲突吗?
  • 对网站和网页的认识鞍山信息网便民信息
  • 《算法通关指南---C++编程篇(2)》
  • 【论文速递】2025年第29周(Jul-13-19)(Robotics/Embodied AI/LLM)
  • 网站 模板更改网站备案
  • VR反诈一体机-VR预防诈骗模拟系统-VR防诈骗体验馆方案
  • 大型网站seo课程沈阳关键词优化费用
  • Kubernetes PVC 扩容完全指南:静态迁移 vs 动态扩容
  • 【题解】B2613【深基1.习5】打字速度
  • Elastic DevRel 通讯 — 2025 年 10 月
  • Java面试基础题
  • 博客标题:快速解决 VS Code 终端运行 petalinux-config 界面显示错乱问题
  • 强化学习【Monte Carlo Learning][MC Basic 算法]
  • 杭州网站开发制作公司小程序源码出售
  • 从0到1学习Qt -- 创建项目
  • dw做网站基础wap网站开发价格
  • 【实时Linux实战系列】实时应用的多版本共存与无缝升级
  • Linux小课堂: 文件操作核心命令深度解析(cp、mv 与 rm 命令)
  • 【大模型小实验】考一考qwen3-8b对于历史人物的理解
  • 商家建设网站的好处公司单页设计