• elementUI 列表里面含有多选框,当翻页的时候依然保持之前页多选不变


    el-table的type="selection"的使用

    场景:el-table,type="selection"时,重新请求后,设置列表更新前的已勾选项

    踩坑:在翻页或者changPageSize之后,table的data会更新,之前勾选的选项会被清掉

     初次尝试:

    最快速的解决办法如下:

    element-UI 的table表格数据有提供多项框的功能,只要在表格列中多加一列就可以选择表格的数据

    但是有时候表格的数据是有分页的,分页一般是要重新请求后台数据,这样上一页也就是上一次请求的数据的选中状态就没有了.element提供了reserve-selection可以保存数据更新前选中的值,这个属性还需要指定row-key.
    先看下页面的效果:
     
    注意事项:
    具体看代码:
    复制代码
    <el-table
        :data="tableData6"
        :row-key="getRowKey"
        ref="buyerTable"
        height="300"
        @selection-change="handleSelectionChange"
        border
        style=" 100%">
        <el-table-column
          type="selection"
          :reserve-selection="true"
          width="55">
        </el-table-column>
        <el-table-column
          prop="id"
          label="ID"
          width="180">
        </el-table-column>
        <el-table-column
          prop="name"
          label="姓名">
        </el-table-column>
        <el-table-column
          prop="amount1"
          sortable
          label="数值 1">
        </el-table-column>
        <el-table-column
          prop="amount2"
          sortable
          label="数值 2">
        </el-table-column>
        <el-table-column
          prop="amount3"
          sortable
          label="数值 3">
        </el-table-column>
      </el-table>
      <el-pagination
        @size-change="handleBuyerSizeChange"
        @current-change="handleBuyerCurrentChange"
        :current-page="currentBuyerPage"
        :page-sizes="[5, 10, 15, 20]"
        :page-size="buyerPageSize"
        layout="total, sizes, prev, pager, next, jumper"
        :total="buyerTotalCount">
      </el-pagination>
    复制代码

    js代码:

    复制代码
    methods: {
    // 保存选中的数据id,row-key就是要指定一个key标识这一行的数据
        getRowKey (row) {
          return row.id
        },
    
        // 列表选择,val选中的表格行数据
        handleSelectionChange (val) {
          console.log(val)
        },
    
        // 清空选择的值
        clearSelect () {
          this.$refs.buyerTable.clearSelection()
        }
    }
    复制代码

     注意:

    row.id 最好不要重复,不然会报错了,如果id有重复的可以采用如下解决办法来设置不同的id值
    this.recordList = data.content.map((v,index) => {
                this.$set(v, 'id', v.messageId+index)
                return v
              })
  • 相关阅读:
    RPI学习--环境搭建_更新firmware
    RPI学习--环境搭建_刷卡+wiringPi库安装
    [转]VS2005 Debug时提示"没有找到MSVCR80D.dll"的解决办法
    [转]结构体字节对齐
    [转]C++运算优先级列表
    putty基本操作
    Go 修改字符串中的字符(中文乱码)
    Go part 5 结构体,方法与接收器
    pickle 和 base64 模块的使用
    原来还有 卡夫卡 这个人存在
  • 原文地址:https://www.cnblogs.com/mmzuo-798/p/11776755.html
Copyright © 2020-2023  润新知