zoukankan      html  css  js  c++  java
  • P35 翻页(下)







    在框架里面我们怎么实现呢?通常会实现一个自定义的类,这个类是一个泛型类。。这个类通常会包含一些属性。

    开始写代码

    首先建立泛型类

    PagedList加上泛型<T> 继承List,PagedList本身就是一个集合,只不过我们在这个集合的基础之上加了一些分页信息。

    当前页和总页数。他们的属性是private 防止在类外面设置。否则他们的值就会被设置成不合理的值。



    是否有前一页和后一页


    只要是currentPage,也就是当前页大于1,他就有前一页。

    是否包含下一页

    需要一个构造函数,把这些相关的参数都传进来。
    数据的总数Item,数据总数count,当前页pageNumebr。然后每页显示的数据条数据pageSize。
    totalPages需要算一下:如果是5除以2.等于2.5那么就显示3页。所以这里使用Math.Ceiling。最后再把double转换成int类型。

    最终的是我们要把items添加到List里面,这里使用AddRange就可以了。

    我们不支持使用这个构造函数,我们建立一个静态方法

    改成异步

    这里我们实际上可以把查询表达式queryExpression直接作为参数传入createAsync方法

    下面我们就来改下Repository

    先来修改接口。

    实现类。

    方法具体返回的修改。



    controller

    首先要做的就是生成前一页和后一页的链接。生成这个链接就需要用到URLHelper,它里面有个link方法。link方法就可以生成URI。但是link方法需要知道这个Action的name,所以这里我们需要先给action加上name


    建立一个private的方法。ResourceUriType是一个枚举类型。


    下面建立这个枚举。在Helpers文件夹下建。




    因为是前一页,所以这里要减1



    必须带上查询过滤条件,否则下一页的数据就不对了。

    后一页

    默认当前页

    如果有前一页就生成




    下一页

    所有的元数据先弄出来一个对象吧。new一个匿名类





    测试




    headers里面数据。

    试一下这个链接

    这里有个错误把&,不安全的字符转义了

    这里转换的时候加上第二个参数

    里面配置一个属性



    重新测试




    复制出来,查询第二页

    前一页和上一页的数据也都出来了

     

    结束


  • 相关阅读:
    1722 最优乘车 1997年NOI全国竞赛
    5969 [AK]刻录光盘
    tarjan算法讲解
    求有向图的强连通分量个数 之 Kosaraju算法
    信使
    1405 奶牛的旅行
    P1828 香甜的黄油 Sweet Butter
    洛谷P2235 [HNOI2002]Kathy函数
    「BZOJ1010」[HNOI2008] 玩具装箱toy(斜率优化)
    BZOJ 1974 [Sdoi2010] auction 代码拍卖会(数位dp)
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/14130063.html
Copyright © 2011-2022 走看看