前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >含有复选框的表格显示与隐藏切换

含有复选框的表格显示与隐藏切换

作者头像
tianyawhl
发布2020-12-16 18:13:54
2.2K0
发布2020-12-16 18:13:54
举报

点击切换按钮表格显示与隐藏

如果使用v-if,注意使用this.nextTick,并且this.nextTick 放的位置在里面,不要显示表格的时候就使用this.

toggleRowSelection 无效,并影响下一次循环

    <el-table
      v-if="isShowTable"
      :data="tableData3"
      style="width: 500px"
      height="250"
      border
      id="table"
      ref="multipleTable"
      @selection-change="handleSelectionChange"
    >
    handleSelectionChange(selection) {
      this.selectedTableRow = selection;
      console.log(this.selectedTableRow);
    },
    handleChange() {
      this.isShowTable = !this.isShowTable;       
      if (this.isShowTable) {
         this.$nextTick(() => {                    
          for (let i = 0; i < this.tableData3.length; i++) {
            for (let j = 0; j < this.selectedTableRow.length; j++) {
              console.log(this.selectedTableRow)
              if (this.tableData3[i].zip == this.selectedTableRow[j].zip) {
                   this.$refs.multipleTable.toggleRowSelection(this.tableData3[i]);
                   })               
              }
            }
          }                 
       });
      }
    },

刚开使用上面的代码,发现显示的选中行有问题,改成下面的代码,把 this.$nextTick 放到toggleRowSelection中外面,就可以正常显示

    handleChange() {
      this.isShowTable = !this.isShowTable;     
      if (this.isShowTable) {
       // this.$nextTick(() => {          
          for (let i = 0; i < this.tableData3.length; i++) {
            for (let j = 0; j < this.selectedTableRow.length; j++) {
              console.log(this.selectedTableRow)
              if (this.tableData3[i].zip == this.selectedTableRow[j].zip) {
                   this.$nextTick(() => {
                     // 没有生成Dom 影响下一次循环执行
                     this.$refs.multipleTable.toggleRowSelection(this.tableData3[i]);
                   })
               
              }
            }
          }         
       // });
      }

如果数据没有变化可以使用v-show

    <el-table
      v-show="isShowTable"
      :data="tableData3"
      style="width: 500px"
      height="250"
      border
      id="table"
      ref="multipleTable"
      @selection-change="handleSelectionChange"
    >
    handleChange() {
      this.isShowTable = !this.isShowTable;
    }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档