https://element.eleme.cn/#/zh-CN/component/table elementui官网
这个问题昨天有遇到,也去element官网看了,它有的我也写上去了,为什么没有回显,就很奇怪哈--看图
toggleSelection() { //切换选中状态按钮
if (this.$props.activeChange) {
this.$props.activeChange.forEach(row => {
this.$refs.multipleTable.toggleRowSelection([{id:0}, {id:1}]);
});
} else {
this.$refs.multipleTable.clearSelection();
}
}
this.$props.activeChange是传过来的数据 ,在这里回显的id我是写si的,却是上图一的样子..
后面是去上网查找了,网上说的也是云里雾里的,同样也没回显出来,但是它这个显了又没完全显的样子
网上是还需加属性-- 注意:el-table属性 :row-key="row => row.id" el-table-column属性 :reserve-selection="true"
this.$refs.multipleTable.toggleRowSelection([{id:0}, {id:1}],true);
括号尾巴加个true
话不多说,上代码
toggleSelection() {
let arr = []
console.log(this.$props.activeChange); //[0,1]
Object.keys(this.$props.activeChange).forEach(item=>{ //为了追加成数组对象形式
arr.push({
id:this.$props.activeChange[item]
})
})
arr.forEach(key1=>{
this.tableData.forEach(key2=>{
if(key1.id==key2.id){
this.$refs.multipleTable.toggleRowSelection(key2,true); //这里选择的key2值才有效,如果要是无效可以选择key1值
}
})
})
}
注意哈注意哈,传到弹窗的数据必须为数组对象形式才有效,如果不是,你可以在弹窗页面变成数组对象形式,上面的代码就是变成的数组对象。然后两个forEach方法,this.tableData是弹窗表格数据,再来个判断给代码来点安全性....
好!现在再说下这串代码中(key2)的问题 this.$refs.multipleTable.toggleRowSelection(key2,true);
因为在这个练习项目中是根据官网中,通过按钮才给它回显多选框,其实我也很纳闷哈,昨天写公司项目时,是根据接口数据渲染完成才做的操作,然后用的是上面代码中的key1来回显多选框。key1就是0id和1id,然后true显示这两个对吧。但是哈偏偏要key2才能显示出来,就很奇怪。
总得来说,能达到目的就行了是吧
还有一个问题我要说下,上面说到我去查了网上的解决方法但是不行是吧。主要是我用的是数组的形式来forEach,这两个forEach都不一样,就不好判断,不好判断就显示不出来是吧
本文章到此就结束啦.....