[Vue] el-table多选框中回显问题

发布于:2022-12-17 ⋅ 阅读:(873) ⋅ 点赞:(0)

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都不一样,就不好判断,不好判断就显示不出来是吧

本文章到此就结束啦.....

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到