vue使用element UI怎么实现回显和翻页table表格保留选中
dearweb 发布:2021-09-27 18:22:43阅读:首先来说我们在使用vue开发项目时,用到table表格中勾选翻页保留勾选记录以及回显记录的场景还是比较多的,具体要怎么实现呢?相信不少小伙伴曾经都感到过头疼,当你看到这篇文章时,这样的问题将会被解答。
首先我们看一下table这个组件
官方文档告诉我们,如果组件实现多选的功能需要用到这么几个属性:手动添加一个 el-table-column,设type属性为 selection 即可,就像下面这样
<template> <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55"> </el-table-column> <el-table-column label="日期" width="120"> <template slot-scope="scope">{{ scope.row.date }}</template> </el-table-column> <el-table-column prop="name" label="姓名" width="120"> </el-table-column> <el-table-column prop="address" label="地址" show-overflow-tooltip> </el-table-column> </el-table> </template> <script> export default { data() { return { tableData: [{ date: '2016-05-03', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }, { date: '2016-05-02', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }, { date: '2016-05-04', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }, { date: '2016-05-01', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }, { date: '2016-05-08', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }, { date: '2016-05-06', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }, { date: '2016-05-07', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }], multipleSelection: [] } }, methods: { handleSelectionChange(val) { this.multipleSelection = val; } } } </script>
这样我们就能实现多选了,表格的预览效果
上面介绍了多选,如果实现翻页保留选中,其实也很简单,就是在el-table-column里面增加一个属性 :reserve-selection="true"以及在table里面增加一个函数 getRowKey(),有些重复的代码,我在这儿就不写了。
<template> <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" :row-key=="getRowKey" style="width: 100%" @selection-change="handleSelectionChange"> <el-table-column type="selection" :reserve-selection="true" width="55"> </el-table-column> </template> <script> export default { methods: { getRowKey (row) { return row.id }, handleSelectionChange(val) { this.multipleSelection = val; } } }, </script>
通过添加这两个属性,你在翻页的时候也能保存之前所选中的数据。记下来要介绍的就是回显了。
table数据回显
其实回显根据官方给的解释也是很简单的,只需要调用一个方法 toggleRowSelection(row,true) 就行了,注意这里有两个参数,第一个代表所在列,第二个就代表是否勾选,true为勾选。
这里我们拿到回显数据之后在dom渲染完成的时候就开始进行渲染,建议在created里面写
<script> export default { data() {}, created(){ this.$nextTick(()=>{ // arr 为我们需要渲染的数据 arr.forEach(row => { this.$refs.multipleTable.toggleRowSelection(row,true); }); }) } } </script>
这个回显不管如何只要在渲染之前赋值给表格就行了,会自动进行计算。
上面所讲到的就是处理element 中table表格数据回显以及翻页保留选中数据的方法,本文就先到这儿,后续还将有更为精彩的案例等着你喔。
小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧