element-table toggleRowSelection
最近在写后台系统时需要一个表格之外的全选按钮,然后查看了element的方文档可以通过toggleRowSelection进行全选等操作
html
<el-button type="primary" size="mini" v-if="!ifAll" @click="allChoose">全选</el-button>
<el-table
@selection-change="handleSelectionChange"
@select-all="selectAll"
ref="multipleTable"
:data="list"
border
fit
highlight-current-row
class="table"
>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column type="index" label="序号" align="center" width="50"></el-table-column>
<el-table-column
v-for="(item,index) in tabHeader"
:key="index"
:label="item.name"
align="center"
>
<template slot-scope="{row}">
<span>{{ row[item.val]}}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="180" class-name="fixed-width">
<template slot-scope="{row}">
<el-button type="warning" size="mini" @click="revise(row)">修改</el-button>
<el-button type="danger" size="mini" @click="deleteOut(row)">删除</el-button>
</template>
</el-table-column>
</el-table>
ts部分
//学生列表全选
allChoose() {
for (let i in this.list) {
this.$nextTick(() => {
this.$refs.multipleTable.toggleRowSelection(this.list[i], true);
});
}
}
结果一直报错
虽然不影响使用 但是一片红灿灿的报错还是很难受呀
最后打印了一下this.$refs.multipleTable发现里面是存在toggleRowSelection的 ;那报错的原因可能就是类型问题了
于是
allChoose() {
for (let i in this.list) {
this.$nextTick(() => {
let multipleTable: any = this.$refs.multipleTable;
multipleTable.toggleRowSelection(this.list[i], true);
});
}
}
果然不再报错了 如果你们也存在这个问题可以试一下这个方法哟