element如何在分页的时候也能保存用户的全选或者反选的操作

图片描述

用户点击下一页的时候,这个页面的全选按钮就变成了未选中,我在data中设置了一个selectAll,来保存用户操作的数据,但是没有选中的状态。
请大家给一个思路

阅读 4.8k
5 个回答

在用户点击下一页的时候页面展示的就是不同的数据,理应不选中

1.创建一个对象用来保存每个分页的信息,例如

checkedObj: {
    1: [0, 1],
    2: [2, 3]
}

2.监听table的selectselect-all事件,实时更新checkedObj的数据
3.监听pagination的分页切换事件,从checkedObj里面读取数据使用toggleRowSelectionAPI还原现场
ps:存储结构你怎么喜欢怎么来

简单来说,就是用变量来缓存每一页的勾选信息,例如:

    data () {
        return {
            checkStatus: {
                page1: [    // 第一页
                    {
                        checked: 1    // 第一项选中
                    },
                    {
                        checked: 1    // 第二项选中
                    },
                    {
                        checked: 0    // 第三项未选中
                    }
                ],
                page2: [    // 第二页
                    {
                        checked: 0    // 第一项未选中
                    },
                    {
                        checked: 1    // 第二项选中
                    },
                    {
                        checked: 0    // 第三项未选中
                    }
                ]
                ...
            }
        }
    }

页码每次改变的时候,到这个变量里找有没有缓存改变后那一页的状态,如果没有,就不管,此时默认全部未选中。如果有记录,就拿出来遍历修改状态即可。

element-ui有这个功能,建议看一下表格属性row-key

推荐问题