ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

elementui中的表格在实现无限滚动时之前的数据选中状态消失

2021-09-22 18:33:02  阅读:303  来源: 互联网

标签:loading false 表格 elementui 选中 selectData tableData row


在vue项目中,使用elementui组件库table表格,在列表页需要有无限滚动和复选框功能

问题:在滑动滚动条加载更多数据的时候,之前数据的选中状态发生变化
解决:

<!--表格-->
<el-table
      ref="mytable"
      :data="tableData"
      v-el-table-infinite-scroll="load"
      @select="selectnow"
      @select-all="selectAll"
    >
      <el-table-column type="selection" width="30"></el-table-column>
      .......
 </el-table>
 <!--加载更多动画-->
  <div class="loadingtooltip" slot="append">
      <p v-if="loading">
        <i class="el-icon-loading"></i>
      </p>
    </div>
data(){
  return {
     tableData: [...],
     selectData:[],
     loading:false,
     expandData:[....]
  }
},
methods:{
  selectlist(){
      let that = this;
      //解决toggleRowSelection无效的问题
      that.$nextTick(()=>{
         if (that.selectData) {
         that.selectData.forEach((row) => {
           that.$refs.mytable.toggleRowSelection(row);
         });
       } else {
         that.$refs.mytable.clearSelection();
       }
       })
    },
    // 无限滚动
    load() {
      let that=this;
      if (this.tableData.length >= 19) {
        this.loading = false;
        console.log("数据已经到底了");
        return;
      } else {
        this.loading = true;
          setTimeout(() => {
            that.$nextTick(()=>{
              that.selectlist();
            })
            this.tableData = this.tableData.concat(this.expandData);
           this.loading = false;
        }, 2000);
      }
    },
    //获得当前选中的行
    selectnow(sele, row) {
      this.selectData = sele;
    },
    //获得选中的所有数据
    selectAll(selection) {
      this.selectData = selection;
    },
}

实现效果:
在这里插入图片描述

标签:loading,false,表格,elementui,选中,selectData,tableData,row
来源: https://blog.csdn.net/weixin_45956230/article/details/120420148

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有