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表格数据回显以及翻页保留选中数据的方法,本文就先到这儿,后续还将有更为精彩的案例等着你喔。
小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧