{ return row.id}".:reserve-selection="true"">
关闭

ElementUi多选框表格,翻页选中有记忆功能保持默认选中

来源:网络 文章列表 2020-05-15 8
在用vue开发表格多选功能时,遇到一个翻页后需要保持之前选中的状态。简单说就是让表格翻页选中仍然有记忆功能。切换分页持久化选中表格,其实关键代码就这2行.:row-key="(row)=>{ return row.id}".:reserve-selection="true"

在用vue开发表格多选功能时,遇到一个翻页后需要保持之前选中的状态。简单说就是让表格翻页选中仍然有记忆功能。

我用的是ElementUi,不得不说ElementUi做的还是非常好的。

废话不多说,下面描述实现的步骤和代码

第一步:给表格添加 row-key

<el-table
   :data="data"
   ref="tableData"
   @selection-change="onSelectInvoiceItem"
   :row-key="(row) => row.id"
    @select-all="onSelectAll"
>
</el-table>

关键点::row-key="(row) => row.id"

第二步:给多选框加默认选中功能

<el-table-column type="selection" :reserve-selection="true" width="40"></el-table-column>

关键点::reserve-selection="true"

切换分页持久化选中表格,其实关键代码就这2行

:row-key="(row)=>{ return row.id}"
:reserve-selection="true"

注意id需要唯一

 

其他可能用到的方法

@selection-change 会返回所有选中的数据
@select 会返回所有选中的数据及当前操作的数据

清空所有选中

this.$refs.table.clearSelection();//页面中有搜索或重置时可能会用到。

默认选中

this.$refs.table.toggleRowSelection(this.list[index]);//必须传表格的数据;以数组[下标]格式传递.

如果你是用的自定义的单选框,可以参考

单选框

<el-table
      :data="list"
      ref="multipleTable"
      :row-key="(row)=>{ return row.classId}"
      @current-change="handleCurrentRadio"
      style="width: 100%">
      <el-table-column width="80" v-if="radioShow">
        <template slot-scope="scope">
          <el-radio v-model="radio"  :label="scope.row.classId">{{''}}</el-radio>
        </template>
              </el-table-column>
    </el-table>

@current-change="handleCurrentRadio"会返回选中的数据。可以在这个事件用return false 来阻止选中
//label 和原生的value属性一样。 利用v-model来绑定唯一值,意味着label的值为唯一的。
//{{""}}为了让单选框不显示label。

版权声明

本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。

评论

  • 随机获取
点击刷新
精彩评论
关闭