使用Element時默認(rèn)勾選表格toggleRowSelection方式
Element時默認(rèn)勾選表格toggleRowSelection
頁面效果
在頁面初始化加載時將表格中某行默認(rèn)選中

使用方法:toggleRowSelection
| 方法名 | 說明 | 參數(shù) |
|---|---|---|
| toggleRowSelection | 用于多選表格,切換某一行的選中狀態(tài),如果使用了第二個參數(shù),則是設(shè)置這一行選中與否(selected 為 true 則選中) | row, selected |
table表格渲染
方法名說明參數(shù)toggleRowSelection用于多選表格,切換某一行的選中狀態(tài),如果使用了第二個參數(shù),則是設(shè)置這一行選中與否(selected 為 true 則選中)row, selectedtable表格渲染
<el-table :data="listPowerSupplyTab" border ref="listPowerSupplyTab" width="100%"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55">
</el-table-column>
<el-table-column
prop="powerSupplyStationName"
label="供電所名稱"
width="180">
</el-table-column>
<el-table-column
prop="powerSupplyStationAddress"
label="供電所地址"
width="180">
</el-table-column>
<el-table-column
prop="contacts"
label="聯(lián)系人">
</el-table-column>
<el-table-column
prop="telephone"
label="電話">
</el-table-column>
<el-table-column
prop="powerSupplyMode"
label="供電方式 ">
</el-table-column>
<el-table-column
prop="capacity"
label="配電容量 ">
</el-table-column>
<el-table-column
prop="subordinatePowerSupplyBureau"
label="所屬供電局 ">
</el-table-column>
</el-table>
注意:
1、注意el-table上有一個ref="listPowerSupplyTab"的屬性
2、toggleRowSelection(row, selected)接受兩個參數(shù),row傳遞被勾選行的數(shù)據(jù),selected設(shè)置是否選中
使用watch監(jiān)聽listPowerSupplyTab數(shù)據(jù)
watch:{
listPowerSupplyTab(n,o){
this.$nextTick( ()=> {
this.$refs.listPowerSupplyTab.toggleRowSelection(this.listPowerSupplyTab[0],true);
})
},
},
ref引用到Dom元素上,再執(zhí)行dom上的toggleRowSelection方法。
當(dāng)頁面有隱藏顯示的tab頁簽時
因為一次性加載數(shù)據(jù),因而監(jiān)聽active的變化
watch:{
//監(jiān)聽active
active: {
handler(n,o){
this.$nextTick(()=> {
if(n == '6'){
this.listPowerSupplyTabNew.forEach((ele,indexItem) => {
if(ele.type=='1'){
this.$refs.listPowerSupplyTabRef.toggleRowSelection(ele);
}
})
}else if(n == '7'){
this.technicalInformationNew.forEach((ele,indexItem) => {
if(ele.type=='1'){
this.$refs.technicalInformationNewRef.toggleRowSelection(ele);
}
})
}
})
},
immediate: true,
deep: true
},
},
element表格默認(rèn)勾選不生效的問題
默認(rèn)勾選可以這樣做

this.$refs.multipleTable.toggleRowSelection(row);
如果不生效的話,一般需要考慮這幾種情況
1、獲取數(shù)據(jù)(選中的數(shù)據(jù)以及表格展示的數(shù)據(jù))這里的兩個數(shù)據(jù)必須是同一個對象的數(shù)據(jù),也就是數(shù)據(jù)必須是表格當(dāng)中的數(shù)據(jù),而且 不能深拷貝
2、設(shè)置表格數(shù)據(jù)
3、設(shè)置完成后,一般我們都是獲取到后端的代碼再設(shè)置this.$refs.multipleTable.toggleRowSelection(row);
這里還要加一個$nextTick
具體代碼如下:
/**
* @description: 獲取表格數(shù)據(jù)
* @param {String} code
* @param {String} srcType
*/
async getTableData(code, srcType) {
try {
this.tipContent = 'loading'
const { result } = await querySubTabDefine({
tableSrcType: srcType,
subjectCode: code
})
for (const item of result) {
item.select = item.flag === '1'
}
this.tableData = result
this.$nextTick(() => {
for (const row of this.tableData) {
row.select && this.$refs.table.toggleRowSelection(row, true)
}
})
// console.log(selectArr)
this.tipContent = this.tableData.length ? false : 'empty'
this.layoutTable()
} catch (error) {
console.error(error)
this.tipContent = 'error'
this.tableData = []
}
},
其中最主要是這一步
this.$nextTick(() => {
for (const row of this.tableData) {
row.select && this.$refs.table.toggleRowSelection(row, true)
}
})
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Element基于el-input數(shù)字范圍輸入框的實現(xiàn)
本文主要介紹了?Element基于el-input數(shù)字范圍輸入框的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
vue中使用 pako.js 解密 gzip加密字符串的方法
這篇文章主要介紹了vue項目中 使用 pako.js 解密 gzip加密字符串 的方法,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-06-06
Vue3.0利用vue-grid-layout插件實現(xiàn)拖拽布局
這篇文章主要介紹了Vue3.0利用vue-grid-layout插件實現(xiàn)拖拽布局,工作中難免遇到需要對頁面布局進(jìn)行拖拽然后改變布局,保存布局,下面文章就圍繞Vue3.0利用vue-grid-layout插件實現(xiàn)拖拽布局的相關(guān)資料展開詳細(xì)內(nèi)容,需要的朋友可以參考一下2021-11-11

