hhhh2010

博客园 首页 新随笔 联系 订阅 管理

          最近做一个小功能,需要数据分页,因为小框架使用的是EF,因此查询了一下EF的分页。

          EF分页主要用到了skip和take两个方法:

                   GetListBy(lamda xxxxx).skip(PageSize *PageIndex).take(PageSize)

                   PageSize是每页的大小、PageIndex是当前的页数

       1)添加内容,调整界面

  •   界面上增加按钮:增加上一页、下一页等按钮,供用户使用
  •   增加变量保存:增加当前页、数据总量等数据

       2)增加ADO.NET查询

               本想直接使用EF的count来获取数量,结果是慢的惨不忍睹,然后用ADO.NET直接查数量,这样不会造成延迟。

       3)用EF查询数据

              当查询出数量,接着用EF将第一页数据获取上来(注意,步骤2和3查询条件需要一致,否则出错)

       4)上一页和下一页

              另起一个方法,直接用EF的条件来获取下一页或上一页,然后根据下面进行按钮控制。

     代码就不贴了,参考资料附一下:

       https://www.cnblogs.com/M-LittleBird/p/5852395.html

       https://blog.csdn.net/augus3344/article/details/45378877

  

  •              根据页数据量和总量的对比,判断当前页是否最后一页
  •               根据页码来判断当前页有无上一页

       经简单测试,几十万条数据完成没问题。

       5)导出的问题

                 分页的数据比较零碎,不能作为导出的数据来源,导出使用相同条件的ADO.NET进行重新查询,然后导出(注意,此处是查数据,步骤2仅仅查询数量)

posted on 2018-08-20 15:11  hhhh2010  阅读(4818)  评论(0编辑  收藏  举报