elementui el-table 多选 切换数据选中内容不清空并且自带回显默认选中

不废话别的 直接上代码
最主要的就是 row-key,reserve-selection 配合使用

<template>
    <el-table :data="tableData" ref="table" @selection-change="handleSelectionChange" :row-key="getRowKeys">
        <el-table-column type="selection" :reserve-selection="true" width="55" />
    </el-table>
</template>
<script>
export default {
    data(){
        return{
            tableData:[],
            multipleSelection:[]
        }
    },
    mounted(){
    	// 先将回显的数据请求到在请求列表数据,要不会有问题
	    this.getSelection();
        this.getData();
    },
    methods:{
        getRowKeys(row) {
            return row.id;
        },
        handleSelectionChange(val) {
            this.multipleSelection = val;
        },
        // 默认选中
        handselect(){
            this.multipleSelection.forEach(el=>{
                this.$refs.table.toggleRowSelection(el)
            })
        },
        getData(){
            axios.get("xxx").then(res=>{
                this.tableData = res.data;
            })
        }
        getSelection(){
            axios.get("xxx").then(res=>{
                this.multipleSelection = res.data;
                this.handselect()
            })
        }
    }
}

</script>

这样,table切换页码时就不会清空选中的内容,并且回显时也可以默认选中

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现el-table默认全部选中,你可以使用以下步骤: 1. 在el-table组件上设置`v-model`绑定一个布尔值,用于控制是否选中全部数据。 ```html <el-table v-model="selectAll" :data="tableData" :row-key="row => row.id" :show-header="false"> <!-- 表格列定义 --> </el-table> ``` 2. 在Vue实例中定义`selectAll`变量,并将其初始化为`true`。 ```javascript data() { return { selectAll: true, tableData: [...], // 表格数据 }; }, ``` 3. 在el-table的模板中,添加一个全的表头列,并绑定`selectAll`的值。 ```html <template slot-scope="scope"> <el-table-column type="selection" width="55"> <template slot-scope="scope"> <el-checkbox v-model="selectAll" @change="handleSelectAll"></el-checkbox> </template> </el-table-column> <!-- 其他列定义 --> </template> ``` 4. 在Vue实例中定义`handleSelectAll`方法,用于处理全状态的变化。当全状态改变时,更新每一行数据选中状态。 ```javascript methods: { handleSelectAll(value) { this.tableData.forEach(row => { row.selected = value; }); }, }, ``` 5. 最后,在el-table的列定义中,设置每一行的选中状态为数据对象中的一个属性(例如`selected`),并将该属性与el-checkbox的v-model绑定。 ```html <el-table-column type="selection" width="55"> <template slot-scope="scope"> <el-checkbox v-model="scope.row.selected"></el-checkbox> </template> </el-table-column> ``` 这样,当`selectAll`变量为`true`时,全部数据将被默认选中。同时,你可以通过操作全的复框来控制所有行的选中状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值