解决前端分页和页面选中回显问题

 前提:前端没有使用框架

这是在一次后端开发差不多,发现的前端问题。问题:前端使用了分页,然而每个页面都有五条数据,带有选择框,页面会有选中的项进行操作,但是翻页后,

 会使数据丢失(之前那些页面,被选中的项翻回去没有被选中,选中进行批量操作只会找到当前页)。

 解决:需要让网页记忆,或后端记忆

 方案一:后端增加个链表LinkedList这种,在每个用户都用独有的一个,前端进行翻页的时候把数据传入后端,

 然后对比遍历,然后再进行翻页的时候(后端集合异步请求后传入前端,进行对比,进行选中),选中项

  操作也是如此操作。

方案二:前端使用js集合,也是模仿方案一集合,只需要在每次进行页面操作发请求的时候带上集合这个参数,

  以便更新后页面,还可以读到这个集合

综上所想:方案二比较适合,时耗短,用户体验好,而且这是内部人员用的,不担心客户会想去修改前端集合

然后,我就在前端进行操作

贴图:解决前端分页和页面选中回显问题解决前端分页和页面选中回显问题

注:每次在页面请求都需要发送这个集合(这样更新的页面,才会拿到这个集合,记得要从新赋值),

 当然,高级查询还是普通查询这种不需要传,毕竟修改总集合,记得传之前转成字符串才能传。解决前端分页和页面选中回显问题 然后,我想到一种新方法,(前面没说,这里还有个全选按钮),我打算在前端使用的集合使用五个为一组,使用;进行分组拼成字符串,只要被选中就可以进行拼进对应(页数-1)的元素进行修改,只保存被选中的项,然后进行和方案二的操作。

个人认为的好处:这样不用每次对比此页数据哪些被选中,需要遍历全部集合,只需查看对应(页数-1)下标的元素,然后使用字符串split(";"),进行对比当前页面的元素,进行选中操作。

注:上传的时候记得是以 , 分隔,后端记得对字符串进行;分割操作

贴图:解决前端分页和页面选中回显问题

 最麻烦还是全选那里的操作,

贴图:

解决前端分页和页面选中回显问题

 接着就是在选择,选到全部,会把全选框也选上

贴图:解决前端分页和页面选中回显问题

sclice(0)是进行深拷贝(百度js深浅拷贝),最下面那个if 是把 全选的数据交给 部分选择。

部分请求记得带上参数,贴图:

解决前端分页和页面选中回显问题

至此,解决大部分问题,还有一些问题随时间慢慢解决,未能贴上来抱歉!