elementui表格的多选框怎么让他点击分页回来以后继续是选中状态

这个需求在写一些b端项目的时候还是比较常见的,要选中多条数据,然后当你选择分页的时候之前选中的状态就不见了,其实这个原理也很简单,就是给el-table标签加上row-key属性,然后值的话就是你每条数据里边的id就可以,然后将多选框上reserve-selection属性设为true就可以,最后就是不管是单选还是全选直接把事件返回的数组赋值就可以了.具体代码如下:

这是html的代码:

<el-table
:data='list'   //这是要渲染的表格的数据,list是一个数组
ref='table'    //这是用来获取表格实例,具体是用来清空选中的多选框
@select='handleSelect'  //这是表格的单选事件
@select-all='handleSelectAll'  //这是表格的多选事件
:row-key='getRowKey'   //这个就是给整个表格加的唯一值,是一个方法
>
   //一定要把这个设为true,要不不生效
   <el-table-column type='selection' :reserve-selection='true'></el-table-column> 
</el-table>

 这是js代码:

methods:{
    //这个方法就是设置id为唯一值
    getRowKey(row){
        return row.id
    },
    //单选事件
    handleSelect(selection){
    this.selectionList=selection    
    //this.selectionList是需要传的数组,如果后端只要id的话,需要你在传参的时候使用map处理一下数据  
    },
    //多选事件
    handleSelectAll(selection){
    this.selectionList=selection      
    },
    handleClose(){
        this.$refs.table.clearSelection()   //这个方法就是清空所有选中的按钮
    }
    
}

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用iview的table组件的selection-change事件监听多选框的变化,并在事件处理函数中实现将其他选项禁用的逻辑。具体实现可以参考下面的代码示例: ```html <template> <div> <Table :columns="columns" :data="tableData" @selection-change="handleSelectionChange" ref="table"></Table> </div> </template> <script> export default { data() { return { columns: [ { type: 'selection', width: 60, align: 'center' }, { title: '姓名', key: 'name' }, { title: '年龄', key: 'age' } ], tableData: [ { name: '张三', age: 20 }, { name: '李四', age: 25 }, { name: '王五', age: 30 } ], selectedRowKeys: [] } }, methods: { handleSelectionChange(selection) { // 如果只选中了一个选项,则将其他选项禁用 if (selection.length === 1) { const selectedRowKey = selection[0].key this.selectedRowKeys = [selectedRowKey] this.$refs.table.clearSelection() this.$refs.table.toggleRowSelection(selectedRowKey, true) this.tableData.forEach(row => { if (row.key !== selectedRowKey) { this.$refs.table.disableRow(row, true) } }) } else { // 否则,恢复所有选项的可选状态 this.selectedRowKeys = [] this.tableData.forEach(row => { this.$refs.table.disableRow(row, false) }) } } } } </script> ``` 在上面的代码中,我们在Table组件上监听了selection-change事件,并在事件处理函数handleSelectionChange中实现多选框变单选框并禁用其他选项的逻辑。具体实现步骤如下: 1. 判断是否只选中了一个选项,如果是,则将其他选项禁用,并将选中的选项保存到selectedRowKeys数组中。 2. 否则,恢复所有选项的可选状态,并清空selectedRowKeys数组。 注意:由于iview的table组件在paging事件中会重新渲染表格,因此需要在事件处理函数中保存选中状态。可以将选中的行的key保存到selectedRowKeys数组中,并在Table组件上绑定这个数组,这样在重新渲染表格时,表格选中状态就会保持不变。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值