Element 默認(rèn)勾選表格 toggleRowSelection的實(shí)現(xiàn)
官網(wǎng)盡管提供了toggleRowSelection方法,但沒(méi)有提供demo實(shí)例。
通過(guò)了解,結(jié)合vue的特殊屬性ref引用到Dom元素上,再執(zhí)行dom上的toggleRowSelection方法。

以下通過(guò)三種不同的數(shù)據(jù)來(lái)源實(shí)現(xiàn)table默認(rèn)勾選對(duì)應(yīng)的列:
1、固定寫(xiě)在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方法,可以自行測(cè)試在實(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)寫(xiě)得很清楚就不多說(shuō)了。
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)識(shí)
this.$refs.table.toggleRowSelection(this.tableData3[0],true);
},
handleSelectionChange(val) {
this.multipleSelection = val;
}
}
}
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
2、頁(yè)面一加載使用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)識(shí)
this.$refs.table.toggleRowSelection(this.tableData3[0],true);
},
handleSelectionChange(val) {
this.multipleSelection = val;
}
}
}
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
3、一開(kāi)始并沒(méi)有數(shù)據(jù)時(shí):
var Main = {
data() {
return {
tableData3: [],
multipleSelection: []
}
},
beforeMount() {
},
methods: {
checked(){
//首先el-table添加ref="table"引用標(biāo)識(shí)
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')
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 關(guān)于Element-ui中table默認(rèn)選中toggleRowSelection問(wèn)題
- ElementUI之表格toggleRowSelection選中踩坑記錄
- elementui[el-table]toggleRowSelection默認(rèn)多選事件無(wú)法選中問(wèn)題
- elementUI表格多選框this.$refs.xxx.toggleRowSelection無(wú)效問(wèn)題
- 使用Element時(shí)默認(rèn)勾選表格toggleRowSelection方式
- element-ui中table組件的toggleRowSelection()方法使用
相關(guān)文章
vue3實(shí)現(xiàn)搜索項(xiàng)超過(guò)n行就折疊的思路詳解
我們?cè)谧隽斜聿樵?xún)的時(shí)候,會(huì)有很多查詢(xún)項(xiàng),如何實(shí)現(xiàn)超過(guò)n行查詢(xún)項(xiàng)的時(shí)候自動(dòng)折疊起來(lái)呢?本文給大家分享vue3實(shí)現(xiàn)搜索項(xiàng)超過(guò)n行就折疊的思路詳解,感興趣的朋友一起看看吧2022-06-06
Vue3項(xiàng)目中預(yù)覽并打印PDF的兩種方法
最近在項(xiàng)目開(kāi)發(fā)中碰到一個(gè)需求是在頁(yè)面中展示pdf預(yù)覽功能,下面這篇文章主要給大家介紹了關(guān)于Vue3項(xiàng)目中預(yù)覽并打印PDF的兩種方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
前端Vue項(xiàng)目詳解--初始化及導(dǎo)航欄
這篇文章主要介紹了前端Vue項(xiàng)目詳解--初始化及導(dǎo)航欄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下2019-06-06
vue-cli3 取消eslint校驗(yàn)代碼的解決辦法
這篇文章主要介紹了vue-cli3 取消eslint校驗(yàn)代碼的解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
解決vuejs 使用value in list 循環(huán)遍歷數(shù)組出現(xiàn)警告的問(wèn)題
今天小編就為大家分享一篇解決vuejs 使用value in list 循環(huán)遍歷數(shù)組出現(xiàn)警告的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
Vue2.0用 watch 觀察 prop 變化(不觸發(fā))
本篇文章主要介紹了Vue2.0用 watch 觀察 prop 變化(不觸發(fā)),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-09-09

