需求:当弹出一个列表数据,对其进行筛选选择
在这里插入图片描述在这里插入图片描述

列表更新填充已选数据

主要使用toggleRowSelection

代码如下

<el-table v-loading="loading" :data="drugList" @selection-change="handleSelectionChange" ref="drugTable"
&gt;</el-table&gt;
	/** 查询列表数据 */
    getList() {
      this.loading = true;
      listDrug(this.queryParams).then(response =&gt; {
        this.drugList = response.rows;
        this.total = response.total;
        this.loading = false;
        this.initTable();
      });
    },
    initTable(){
      //$nextTick 保证dom、数据都已经加载完毕后执行下面代码 issDrug 选中数组  
      this.$nextTick(()=>{
        for (let i = 0; i < this.drugList.length; i++) {
          for (let j = 0; j <this.idsDrug.length; j++) {
            //两个数组做比对,选中的做勾选
            if(this.drugList[i].id===this.idsDrug[j].id)
            {
              this.$refs.drugTable.toggleRowSelection(this.drugList[i]);
            }
          }
        }
      })
    },

翻页时记录数据

上面代码实现了数据刷新勾选已经选择的数据,但是当新选择数据后翻页,新选择的数据无法保存记录

row-key 行数据的 Key用来优化 Table渲染;在使用 reserveselection 功能显示树形数据时,该属性必填的。类型为 String 时,支持多层访问user.info.id,但不支持 user.info[0].id,此种情况请使用 Function
reserve-selection ·:仅对 type=selection 的列有效,类型为 Boolean,为 true 则会在数据更新之后保留之前选中的数据(需指定 rowkey),该属性默认值false
知道这些了,同时你还需要toggleRowSelectionclearSelection两个属性

 <el-table v-loading="loading" :data="drugList" @selection-change="handleSelectionChange" ref="drugTable"
      :row-key="rowKey"
    >
      <el-table-column type="selection" width="55" align="center" :reserve-selection="true"/>
  </el-table>    
一定要更新这句代码 加上 true
this.$refs.drugTable.toggleRowSelection(this.drugList[i],true);

不然会造成默认选择的数据一回有一回没有.

参考文章

Vue elementui 实现表格selection的默认勾选

Vue + Element UI 表格分页记忆选中,分页切换 页面打勾不丢失

原文地址:https://blog.csdn.net/w710537643/article/details/132376806

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_34922.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注