PHP中文网2017-04-18 10:38:28
不知道我理解的和你表述的是不是一致的,最近正好在做特殊分页的相关功能,试着答一下。
我们平时的分页的页面大小PageSize都是预先设定的,当数据库记录总数已知的前提下,页面的总数也就固定了,因此,当我们遇到这种需要临时修改页面大小PageSize的功能的时候,存在着一定的可能性pageNum和pageCount都会跟着一起变化;
那我们要做的是,当某个页面的某项记录被remov掉以后,我们需要他后面的数据跟着一起响应(分为两种):
1. 不改变页面大小
如果remove掉这个页面(也就是传过来的list)中的数据后,pageSize仍然保持不变,那么我们没什么需要担心的,pageNum依然记录当前页的最后一个记录,这样点击上一页,下一页,不受影响,唯一需要做的工作就是在前台显示上,你需要让remove掉的这个记录确实不在页面显示了,(我默认你数据库是不delete数据的,如果你delete数据,那就另说了)
2. 改变页面大小
如果你remove掉数据以后,页面大小也随之改变,那么需要同时变化的有:pageSize,pageNum,pageCount等等,你remove这条数据后,当前页面大小变小了,在总数据记录条数-1的情况下,页面总数需要重新计算:pageCount = (allCount % pageSize == 0)?(allCount/pageSize):(pallCount/pageSize + 1)
不知道有没有说明白,希望能给你一些帮助。