elementUI的el-table多页面选checkbox回显,拿到既可以使用

elementUI的el-table多页面选checkbox回显,拿到既可以使用

关于el-table的多选,相信只要做过项目的朋友都会用过,这其中有一个坑,是很大概率会踩到的,就是第一页选中了之后,切到第二页选择完之后,切换回第一页发现第一页选择的不见了,怎么办???
这个坑,老实说不难,但由于经常碰到,我总结了一下。

1. 利用 reserve-selection与row-key结合

使用方法:
1)在表格加上属性 :row-key="(row) => { return row.id }"
row-key绑定一个函数,该函数返回每行数据的唯一标识
2)在多选的column标签加上 :reserve-selection=“true” 开启
大功告成!是不是很快?
优点:快捷简单方便
缺点:1. elementUI的版本不能太低
2.某些需求无法满足,比如先给你一组选中的数据

2.选中数据后台获取回显

1.获取后台数据

 // 调用列表表格
    getList (val) {
      this.loading = true
      api
        .quotedPriceAgentList({
          pageSize: this.size,
          pageNum: this.page,
          order: this.order,
          sort: this.sort,
          currencyName: this.formSearch.currencyName,
          name: this.formSearch.name,
          remark: this.formSearch.remark,
          id: val.rolesId,
          agentId: val.uid
        })
        .then((res) => {
          if (res.code === 200) {
            this.tableData = res.data.list
            this.total = res.data.total
            this.loading = false
            // 多选框回显
            this.rowMultipleChecked(res.data.list)
          } else {
            this.$message({ type: 'error', message: res.msg })
          }
        })
    },

2.多选框回显方法

rowMultipleChecked (data) {
      if (data.length) {
        this.$nextTick(function () {
          data.forEach(item => {
            // 如果数据中的bindingStatus === true的话 让这一列选中
            if (item.bindingStatus === true) {
              // multipleTable 是这个表格的ref属性 true为选中状态
              this.$refs.multipleTable.toggleRowSelection(item, true)
            } else {
              this.$refs.multipleTable.toggleRowSelection(item, false)
            }
          })
        })
      }
    },

3.分页调用回显方法

    // 列表页数事件
    handleChange (val) {
      this.size = val
      this.getList(this.row)
      // 多选框回显
      this.rowMultipleChecked(this.tableData)
    },

如果还不懂可以评论或私信我。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值