1.第一次做分页逻辑是在大屏CPR项目中,做的很杂乱,没有进行逻辑的梳理就开始写代码。
2.第二次做分页逻辑是在debrief系统中,需要先梳理逻辑,以下为梳理逻辑的过程。
a.分页分为两种情况,一种是加载后渲染页面,一种是并集搜索某些数据后的分页。
第一种分页逻辑简单,获取当前页码使用linq进行数据的展示,注意:这时候的数据要分为两套,一套是用于页面的展示数据,一套是从接口获取的原始数据,展示数据=深拷贝原始数据
linq分页逻辑
this.vue1.$data.debriefList.showCaseList=Enumerable.From(this.vue1.$data.debriefList.caseList).Skip(takeNum * (page - 1)).Take(takeNum).ToArray()
第二种逻辑需要借助另外一套数据,作为搜索后的源数据,也就是不能跟随分页逻辑去变化的数据。当做完搜索逻辑后,需要把搜索后的数据深拷贝一份保存起来,下面的分页逻辑都要使用这套不会变的数据去进行linq操作。