element plus el-table多选框跨页多选保留功能
作者:a濯
这篇文章主要介绍了element plus el-table多选框跨页多选保留功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
一、基础多选配置
通过 type=“selection” 开启多选列,并绑定 selection-change 事件获取选中数据
<template>
<el-table
:data="tableData"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="name" label="名称" />
<!-- 其他列 -->
</el-table>
</template>
<script setup>
const tableData = ref([...]);
const selectedData = ref([]);
const handleSelectionChange = (val) => {
selectedData.value = val; // 获取选中数据
};
</script>二、跨页多选保留
需设置 row-key 和 reserve-selection 属性实现跨页保留选中状态
<el-table
:data="tableData"
row-key="id"
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
:reserve-selection="true"
width="55"
/>
<!-- 其他列 -->
</el-table>三、条件控制可选状态
通过 selectable 属性动态控制行是否可选中
<el-table-column type="selection" :selectable="(row, index) => row.status !== 'disabled'" />
四、手动回显选中数据
使用 toggleRowSelection 方法回显已选数据
<el-table ref="tableRef" row-key="id">
<!-- 列配置 -->
</el-table>
<script setup>
import { nextTick } from 'vue';
const defaultSelected = ref([...]); // 默认选中数据
// 回显方法
const initSelection = async () => {
await nextTick();
defaultSelected.value.forEach(row => {
tableRef.value.toggleRowSelection(row, true);
});
};
</script>五、样式与交互优化
行点击触发多选:通过 @row-click 配合 toggleRowSelection 实现点击行选中
<el-table @row-click="handleRowClick">
<!-- 列配置 -->
</el-table>
<script setup>
const handleRowClick = (row) => {
tableRef.value.toggleRowSelection(row);
};
</script>调整多选框样式:通过自定义 CSS 覆盖默认样式(如间距、颜色等)。
六、注意事项:
id必须是表格数据中存在的key,请根据自己的表格数据结构来定义。
性能优化:跨页多选需结合分页接口动态加载数据,避免一次性加载全量数据。
完整示例可参考 Element Plus 官方文档或上述实现逻辑组合使用
到此这篇关于element plus el-table多选框跨页多选保留的文章就介绍到这了,更多相关element plus el-table多选框内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
