Element 默認(rèn)勾選表格 toggleRowSelection的實(shí)現(xiàn)
官網(wǎng)盡管提供了toggleRowSelection方法,但沒有提供demo實(shí)例。
通過了解,結(jié)合vue的特殊屬性ref引用到Dom元素上,再執(zhí)行dom上的toggleRowSelection方法。
以下通過三種不同的數(shù)據(jù)來源實(shí)現(xiàn)table默認(rèn)勾選對應(yīng)的列:
1、固定寫在data數(shù)據(jù)里:
注意el-table上有一個(gè)ref="table"的屬性
<div id="app"> <template> <el-table :data="tableData3" border ref="table" style="width: 100%" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55"> </el-table-column> <el-table-column label="日期" width="120"> <template 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> <el-button type="primary" @click="get()">ajax</el-button> </div>
在勾子函數(shù)mounted里執(zhí)行checked方法,可以自行測試在實(shí)例掛載之前beforeMount和掛載后mounted均使用。
this.$refs.table.toggleRowSelection(this.tableData3[0],true);就是本文的默認(rèn)勾選的重點(diǎn),toggleRowSelection(row, selected)接受兩個(gè)參數(shù),row傳遞被勾選行的數(shù)據(jù),selected設(shè)置是否選中,這個(gè)官網(wǎng)寫得很清楚就不多說了。
var Main = { data() { return { tableData3: [{ date: '2016-05-03', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }, { date: '2016-05-02', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }, { date: '2016-05-04', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }, { date: '2016-05-01', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }, { date: '2016-05-08', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }, { date: '2016-05-06', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }, { date: '2016-05-07', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }], multipleSelection: [] } }, mounted(){ this.checked();//每次更新了數(shù)據(jù),觸發(fā)這個(gè)函數(shù)即可。 }, methods: { checked(){ //首先el-table添加ref="table"引用標(biāo)識 this.$refs.table.toggleRowSelection(this.tableData3[0],true); }, handleSelectionChange(val) { this.multipleSelection = val; } } } var Ctor = Vue.extend(Main) new Ctor().$mount('#app')
2、頁面一加載使用ajax獲得數(shù)據(jù):
這里使用定時(shí)器摸擬了一下。
var Main = { data() { return { tableData3: [], multipleSelection: [] } }, mounted(){ var _this = this; setTimeout(function(){ _this.tableData3 = [{ date: '2016-05-03', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }, { date: '2016-05-02', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }, { date: '2016-05-04', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }, { date: '2016-05-01', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }, { date: '2016-05-08', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }, { date: '2016-05-06', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }, { date: '2016-05-07', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }]; _this.$nextTick(function(){ _this.checked();//每次更新了數(shù)據(jù),觸發(fā)這個(gè)函數(shù)即可。 }); },3000); }, methods: { checked(){ //首先el-table添加ref="table"引用標(biāo)識 this.$refs.table.toggleRowSelection(this.tableData3[0],true); }, handleSelectionChange(val) { this.multipleSelection = val; } } } var Ctor = Vue.extend(Main) new Ctor().$mount('#app')
3、一開始并沒有數(shù)據(jù)時(shí):
var Main = { data() { return { tableData3: [], multipleSelection: [] } }, beforeMount() { }, methods: { checked(){ //首先el-table添加ref="table"引用標(biāo)識 this.$refs.table.toggleRowSelection(this.tableData3[2],true); }, handleSelectionChange(val) { this.multipleSelection = val; }, get(){ var datas=[{ date: '2016-05-03', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }, { date: '2016-05-02', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }, { date: '2016-05-04', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }, { date: '2016-05-01', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }, { date: '2016-05-08', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }, { date: '2016-05-06', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }, { date: '2016-05-07', name: '王小虎', address: '上海市普陀區(qū)金沙江路 1518 弄' }]; this.tableData3 = datas; this.$nextTick(function(){ this.checked();//每次更新了數(shù)據(jù),觸發(fā)這個(gè)函數(shù)即可。 }) } } } var Ctor = Vue.extend(Main) new Ctor().$mount('#app')
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue3實(shí)現(xiàn)搜索項(xiàng)超過n行就折疊的思路詳解
我們在做列表查詢的時(shí)候,會有很多查詢項(xiàng),如何實(shí)現(xiàn)超過n行查詢項(xiàng)的時(shí)候自動折疊起來呢?本文給大家分享vue3實(shí)現(xiàn)搜索項(xiàng)超過n行就折疊的思路詳解,感興趣的朋友一起看看吧2022-06-06Vue3項(xiàng)目中預(yù)覽并打印PDF的兩種方法
最近在項(xiàng)目開發(fā)中碰到一個(gè)需求是在頁面中展示pdf預(yù)覽功能,下面這篇文章主要給大家介紹了關(guān)于Vue3項(xiàng)目中預(yù)覽并打印PDF的兩種方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05前端Vue項(xiàng)目詳解--初始化及導(dǎo)航欄
這篇文章主要介紹了前端Vue項(xiàng)目詳解--初始化及導(dǎo)航欄,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下2019-06-06vue-cli3 取消eslint校驗(yàn)代碼的解決辦法
這篇文章主要介紹了vue-cli3 取消eslint校驗(yàn)代碼的解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01解決vuejs 使用value in list 循環(huán)遍歷數(shù)組出現(xiàn)警告的問題
今天小編就為大家分享一篇解決vuejs 使用value in list 循環(huán)遍歷數(shù)組出現(xiàn)警告的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09Vue2.0用 watch 觀察 prop 變化(不觸發(fā))
本篇文章主要介紹了Vue2.0用 watch 觀察 prop 變化(不觸發(fā)),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-09-09