js点击存储数据问题。

我有一个页面是通过js二次获取页面数据的。存在一个变量里以数组对象的形式。每次点击都会修改这个数组对象的和页面内容对应的对象数量,添加和删除
图片.png

var rowDatas = getGridSelectedRowDatas();//我是调系统的方法获取到下图的数据。这个方法没法改。
console.log(rowDatas)//只能针对这个变量进行二次处理

图片.png

现在发现一个问题就是如果点击分页按钮在获取到的数据。会存储数组对象的变量rowDatas里面的对象会清空然后重新生成第第二页的对象内容。想请问一下各位同志,如何才能把每一次点击分页后之前的数据保存下来,用了sessionStorage但是发现点击取消后选中后。原来的取消选中的数据没有清空。像根据id来查但是发现每次点击分页的时候。在这个页面选中后,取消选中。只有当前这个页面的数组对象少了。没法用id做对比删除之前保存在sessionStorage这个里面的。不知道各位同志有没有什么更好的办法来处理。谢谢了,不知道我用sessionStorage,来处理是不是多余的。
图片.png
点击分页以后点击选择数据和取消选中,rowDatas里面存数组对象。会清空上个页面的选中内容对象数据。
图片.png
补充一下我处理的代码,切换到下一页以后,取消选中,数据不知道怎么把取消选中的数据清除。

let rowDatas = getGridSelectedRowDatas();
        console,log('rowDatas的内容')
        console,log(rowDatas)
        if(sessionStorage.getItem('list')){
            const lists = JSON.parse(sessionStorage.getItem('list'))
            let id = lists.map((item)=>item['ID'])
            const newList = rowDatas.filter((item)=>!id.includes(item['ID']))
            if(newList.length){
                newList.map((item)=>{
                    lists.push(item)
                })
            }
            console.log(newList)
            sessionStorage.setItem('list',JSON.stringify(lists))
        }else{
            sessionStorage.setItem('list',JSON.stringify(w.getGridSelectedRowDatas()))
        }
console.log(JSON.parse(sessionStorage.getItem('list')))
阅读 1.6k
1 个回答

肯定能拿到当前页面所有数据嘛,假设叫 data(一般通过 Ajax 等方式拿到,或者 getGridRowDatas() 之类的接口拿到)。
然后点击的时候,可以通过 getGridSelectedRowDatas() 拿到当前页选中的内容,假设叫 selected
再假设 sessionStorage(如果要翻页就用 localStorage) 中的叫 allSelected

那么,先从 allSelected 中清除掉 data 中存在的所有数据,再补充 selected 中的所有数据。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题