关于分页Pagination的使用

在这个例子当中,用的是ssm框架整合,并且用的是Pagination实现分页

先来看一下分页中用到的类的源码

Paginable.java

 1 package cn.itcast.common.page;
 2
 3 /**
 4  * 分页接口
 5  */
 6 public interface Paginable {
 7     /**
 8      * 总记录数
 9      *
10      * @return
11      */
12     public int getTotalCount();
13
14     /**
15      * 总页数
16      *
17      * @return
18      */
19     public int getTotalPage();
20
21     /**
22      * 每页记录数
23      *
24      * @return
25      */
26     public int getPageSize();
27
28     /**
29      * 当前页号
30      *
31      * @return
32      */
33     public int getPageNo();
34
35     /**
36      * 是否第一页
37      *
38      * @return
39      */
40     public boolean isFirstPage();
41
42     /**
43      * 是否最后一页
44      *
45      * @return
46      */
47     public boolean isLastPage();
48
49     /**
50      * 返回下页的页号
51      */
52     public int getNextPage();
53
54     /**
55      * 返回上页的页号
56      */
57     public int getPrePage();
58 }

Pagination.java

  1 package cn.itcast.common.page;
  2
  3 import java.util.ArrayList;
  4 import java.util.List;
  5
  6 /**
  7  * 列表分页。包含list属性。
  8  */
  9 public class Pagination extends SimplePage{
 10
 11     public Pagination() {
 12     }
 13
 14     /**
 15      * 构造器
 16      *
 17      * @param pageNo
 18      *            页码
 19      * @param pageSize
 20      *            每页几条数据
 21      * @param totalCount
 22      *            总共几条数据
 23      */
 24     public Pagination(int pageNo, int pageSize, int totalCount) {
 25         super(pageNo, pageSize, totalCount);
 26
 27     }
 28
 29     /**
 30      * 构造器
 31      *
 32      * @param pageNo
 33      *            页码
 34      * @param pageSize
 35      *            每页几条数据
 36      * @param totalCount
 37      *            总共几条数据
 38      * @param list
 39      *            分页内容
 40      */
 41     public Pagination(int pageNo, int pageSize, int totalCount, List<?> list) {
 42         super(pageNo, pageSize, totalCount);
 43         this.list = list;
 44     }
 45
 46     /**
 47      * 第一条数据位置
 48      *
 49      * @return
 50      */
 51     public int getFirstResult() {
 52         return (pageNo - 1) * pageSize;
 53     }
 54
 55     /**
 56      * 当前页的数据
 57      */
 58     private List<?> list;
 59
 60     /**
 61      * 当前页的分页样式
 62      */
 63     private List<String> pageView;
 64
 65     /**
 66      * 获得分页内容
 67      *
 68      * @return
 69      */
 70     public List<?> getList() {
 71         return list;
 72     }
 73
 74     /**
 75      * 设置分页内容
 76      *
 77      * @param list
 78      */
 79     @SuppressWarnings("unchecked")
 80     public void setList(List list) {
 81         this.list = list;
 82     }
 83     /**
 84      * 获得分页样式
 85      *
 86      * @return
 87      */
 88     public List<String> getPageView() {
 89         return pageView;
 90     }
 91     /**
 92      * 设置分页样式
 93      *
 94      * @param list
 95      */
 96     public void setPageView(List<String> pageView) {
 97         this.pageView = pageView;
 98     }
 99
100
101     /**
102      * 分页显示样示部分
103      */
104     public void pageView(String url,String params){
105
106          pageView = new ArrayList<String>();
107
108         if(this.pageNo != 1){
109             pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo=1‘\"><font size=2>首页</font></a>");
110             pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.pageNo-1)+"‘\"><font size=2>上一页</font></a>");
111         }else{
112             pageView.add("<font size=2>首页</font>");
113             pageView.add("<font size=2>上一页</font>");
114         }
115
116         if(this.getTotalPage() <= 10){
117             for (int i = 0; i < this.getTotalPage(); i++) {
118                 if((i+1)==this.pageNo){
119                     pageView.add("<strong>"+this.pageNo+"</strong>");
120                     i = i+1;
121                     if(this.pageNo==this.getTotalPage())break;
122                 }
123                 pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(i+1)+"‘\">"+(i+1)+"</a>");
124             }
125         }else if(this.getTotalPage() <= 20){
126             //没有把...加上
127             int l = 0;
128             int r = 0;
129             if(this.pageNo<5){
130                 l=this.pageNo-1;
131                 r=10-l-1;
132             }else if(this.getTotalPage()-this.pageNo<5){
133                 r=this.getTotalPage()-this.pageNo;
134                 l=10-1-r;
135             }else{
136                 l=4;
137                 r=5;
138             }
139             int tmp =  this.pageNo-l;
140             for (int i = tmp; i < tmp+10; i++) {
141                 if(i==this.pageNo){
142                     pageView.add("<strong>"+this.pageNo+"</strong>");
143                     i = i+1;
144                     if(this.pageNo==this.getTotalPage()) break;
145                 }
146                 pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(i)+"‘\">"+(i)+"</a>");
147             }
148
149         }else if(this.pageNo<7){
150             for (int i = 0; i < 8; i++) {
151                 if(i+1==this.pageNo){
152                     pageView.add("<strong>"+this.pageNo+"</strong>");
153                     i = i+1;
154                 }
155                 pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(i+1)+"‘\">"+(i+1)+"</a>");
156             }
157             pageView.add("...");
158             pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.getTotalPage()-1)+"‘\">"+(this.getTotalPage()-1)+"</a>");
159             pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.getTotalPage())+"‘\">"+(this.getTotalPage())+"</a>");
160         }else if(this.pageNo>this.getTotalPage()-6){
161             pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(1)+"‘\">"+(1)+"</a>");
162             pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(2)+"‘\">"+(2)+"</a>");
163             pageView.add("...");
164             for (int i = this.getTotalPage()-8; i <this.getTotalPage() ; i++) {
165                 if(i+1==this.pageNo){
166                     pageView.add("<strong>"+this.pageNo+"</strong>");
167                     i = i+1;
168                     if(this.pageNo==this.getTotalPage()) break;
169                 }
170                 pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(i+1)+"‘\">"+(i+1)+"</a>");
171             }
172         }else{
173             pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(1)+"‘\">"+(1)+"</a>");
174             pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(2)+"‘\">"+(2)+"</a>");
175             pageView.add("...");
176
177             pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.pageNo-2)+"‘\">"+(this.pageNo-2)+"</a>");
178             pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.pageNo-1)+"‘\">"+(this.pageNo-1)+"</a>");
179             pageView.add("<strong>"+this.pageNo+"</strong>");
180             pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.pageNo+1)+"‘\">"+(this.pageNo+1)+"</a>");
181             pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.pageNo+2)+"‘\">"+(this.pageNo+2)+"</a>");
182
183             pageView.add("...");
184             pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.getTotalPage()-1)+"‘\">"+(this.getTotalPage()-1)+"</a>");
185             pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.getTotalPage())+"‘\">"+(this.getTotalPage())+"</a>");
186         }
187         if(this.pageNo != this.getTotalPage()){
188             pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.pageNo+1)+"‘\"><font size=2>下一页</font></a>");
189             pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+this.getTotalPage()+"‘\"><font size=2>尾页</font></a>");
190         } else{
191             pageView.add("<font size=2>下一页</font>");
192             pageView.add("<font size=2>尾页</font>");
193         }
194         pageView.add("共<var>" + getTotalPage() + "</var>页 到第<input type=‘text‘ id=‘PAGENO‘  size=‘3‘ />页 <input type=‘button‘ id=‘skip‘ class=‘hand btn60x20‘ value=‘确定‘ onclick=\"javascript:window.location.href = ‘" + url + "?" + params + "&pageNo=‘ + $(‘#PAGENO‘).val() \"/>");
195     }
196 }

SimplePage.java

  1 package cn.itcast.common.page;
  2
  3 /**
  4  * 简单分页类
  5  */
  6 public class SimplePage implements java.io.Serializable,Paginable {
  7
  8     private static final long serialVersionUID = 1L;
  9     public static final int DEF_COUNT = 20;
 10
 11     /**
 12      * 检查页码 checkPageNo
 13      *
 14      * @param pageNo
 15      * @return if pageNo==null or pageNo<1 then return 1 else return pageNo
 16      */
 17     public static int cpn(Integer pageNo) {
 18         return (pageNo == null || pageNo < 1) ? 1 : pageNo;
 19     }
 20
 21     public SimplePage() {
 22     }
 23
 24     /**
 25      * 构造器
 26      *
 27      * @param pageNo
 28      *            页码
 29      * @param pageSize
 30      *            每页几条数据
 31      * @param totalCount
 32      *            总共几条数据
 33      */
 34     public SimplePage(int pageNo, int pageSize, int totalCount) {
 35         setTotalCount(totalCount);
 36         setPageSize(pageSize);
 37         setPageNo(pageNo);
 38         adjustPageNo();
 39
 40     }
 41
 42     /**
 43      * 调整页码,使不超过最大页数
 44      */
 45     public void adjustPageNo() {
 46         if (pageNo == 1) {
 47             return;
 48         }
 49         int tp = getTotalPage();
 50         if (pageNo > tp) {
 51             pageNo = tp;
 52         }
 53     }
 54
 55     /**
 56      * 获得页码
 57      */
 58     public int getPageNo() {
 59         return pageNo;
 60     }
 61
 62     /**
 63      * 每页几条数据
 64      */
 65     public int getPageSize() {
 66         return pageSize;
 67     }
 68
 69     /**
 70      * 总共几条数据
 71      */
 72     public int getTotalCount() {
 73         return totalCount;
 74     }
 75
 76     /**
 77      * 总共几页
 78      */
 79     public int getTotalPage() {
 80         int totalPage = totalCount / pageSize;
 81         if (totalPage == 0 || totalCount % pageSize != 0) {
 82             totalPage++;
 83         }
 84         return totalPage;
 85     }
 86
 87     /**
 88      * 是否第一页
 89      */
 90     public boolean isFirstPage() {
 91         return pageNo <= 1;
 92     }
 93
 94     /**
 95      * 是否最后一页
 96      */
 97     public boolean isLastPage() {
 98         return pageNo >= getTotalPage();
 99     }
100
101     /**
102      * 下一页页码
103      */
104     public int getNextPage() {
105         if (isLastPage()) {
106             return pageNo;
107         } else {
108             return pageNo + 1;
109         }
110     }
111
112     /**
113      * 上一页页码
114      */
115     public int getPrePage() {
116         if (isFirstPage()) {
117             return pageNo;
118         } else {
119             return pageNo - 1;
120         }
121     }
122
123     protected int totalCount = 0;
124     protected int pageSize = 20;
125     protected int pageNo = 1;
126
127     /**
128      * if totalCount<0 then totalCount=0
129      *
130      * @param totalCount
131      */
132     public void setTotalCount(int totalCount) {
133         if (totalCount < 0) {
134             this.totalCount = 0;
135         } else {
136             this.totalCount = totalCount;
137         }
138     }
139
140     /**
141      * if pageSize< 1 then pageSize=DEF_COUNT
142      *
143      * @param pageSize
144      */
145     public void setPageSize(int pageSize) {
146         if (pageSize < 1) {
147             this.pageSize = DEF_COUNT;
148         } else {
149             this.pageSize = pageSize;
150         }
151     }
152
153     /**
154      * if pageNo < 1 then pageNo=1
155      *
156      * @param pageNo
157      */
158     public void setPageNo(int pageNo) {
159         if (pageNo < 1) {
160             this.pageNo = 1;
161         } else {
162             this.pageNo = pageNo;
163         }
164     }
165 }

好了,下面是我写的项目的源码,用的就是这个Pagination来实现分页

BrandController.java

 1 package cn.lzc.code.controller.admin;
 2
 3 import org.springframework.beans.factory.annotation.Autowired;
 4 import org.springframework.stereotype.Controller;
 5 import org.springframework.ui.Model;
 6 import org.springframework.web.bind.annotation.RequestMapping;
 7
 8 import cn.itcast.common.page.Pagination;
 9 import cn.lzc.code.po.Brand;
10 import cn.lzc.code.service.BrandService;
11
12 /**
13  * 品牌管理Controller
14  *
15  * @author admin
16  *
17  */
18 @Controller
19 @RequestMapping("/brand")
20 public class BrandController {
21     // 自动装配
22     @Autowired
23     private BrandService brandService;
24
25     /**
26      * 获取 品牌列表,按条件搜索
27      *
28      * @return
29      */
30     @RequestMapping(value = "list.do")
31     public String list(Integer pageNo, String name, Integer isDisplay, Model model) {
32         // 分页查询品牌,按条件搜索
33         Pagination pagination = brandService.getBrandListByQuery(pageNo, name, isDisplay);
34         // 添加显示到页面
35         model.addAttribute("pagination", pagination);
36         // 回显查询条件name
37         model.addAttribute("name", name);
38         // 回显查询条件isDisplay
39         model.addAttribute("isDisplay", isDisplay);
40         return "brand/list";
41     }
42 }

BrandService.java

 1 package cn.lzc.code.service;
 2
 3 import java.util.List;
 4
 5 import cn.itcast.common.page.Pagination;
 6 import cn.lzc.code.po.Brand;
 7
 8 /**
 9  * 品牌接口
10  *
11  * @author admin
12  *
13  */
14 public interface BrandService {
15     /**
16      * 根据条件查询品牌,可分页
17      *
18      * @param pageNo
19      * @param name
20      * @param isDisplay
21      * @return
22      */
23     public Pagination getBrandListByQuery(Integer pageNo, String name, Integer isDisplay);
24
25 }

BrandServiceImpl.java

 1 package cn.lzc.code.service.impl;
 2
 3 import java.util.List;
 4
 5 import org.springframework.beans.factory.annotation.Autowired;
 6 import org.springframework.stereotype.Service;
 7
 8 import cn.itcast.common.page.Pagination;
 9 import cn.lzc.code.mapper.BrandMapper;
10 import cn.lzc.code.po.Brand;
11 import cn.lzc.code.po.vo.BrandQuery;
12 import cn.lzc.code.service.BrandService;
13
14 /**
15  * 品牌管理实现类
16  *
17  * @author admin
18  *
19  */
20 @Service
21 public class BrandServiceImpl implements BrandService {
22     // 自动装配
23     @Autowired
24     private BrandMapper brandMapper;
25
26     /**
27      * 根据条件查询品牌,可分页
28      */
29     public Pagination getBrandListByQuery(Integer pageNo, String name, Integer isDisplay) {
30         // 如果传入的是字符串,那就是null
31         if (name != null)
32             if ("".equals(name.trim())) {
33                 name = null;
34             }
35         // 创建一个传递参数的品牌查询
36         BrandQuery brandQuery = new BrandQuery();
37         // 设置查询品牌可见的,1为可见,0为不可见
38         brandQuery.setIsDisplay(1);
39
40         // 拼接条件,显示url
41         StringBuilder str = new StringBuilder();
42         if (name != null) {
43             brandQuery.setName(name);
44             str.append("name=").append(name);
45         }
46         if (isDisplay != null) {
47             brandQuery.setIsDisplay(isDisplay);
48             str.append("&isDisplay=").append(isDisplay);
49         } else {
50             // 设置只能查询 可见的品牌
51             brandQuery.setIsDisplay(1);
52             str.append("&isDisplay=").append(1);
53         }
54
55         // 查询brand的总记录数
56         int totalCount = brandMapper.getBrandCount(brandQuery);
57
58         // cpn方法,如果pageNo<1或为空,则设置为1
59         int pageNo1 = Pagination.cpn(pageNo);
60
61         // 设置开始页
62         brandQuery.setPageNo(pageNo1);
63
64         // 查询品牌总记录
65         List<Brand> brands = brandMapper.getBrandListByQuery(brandQuery);
66         // 构建分页对象
67         // 四个参数,当前页数,每页显示的记录数,总记录数,查询出来的列表也就是要显示的列表
68         Pagination pagination = new Pagination(pageNo1, brandQuery.getPageSize(), totalCount, brands);
69         // 分页在页面显示 /brand/list.do?name=aaa&&isDisplay=1
70         String url = "/brand/list.do";
71         pagination.pageView(url, str.toString());
72
73         // 返回分页对象
74         return pagination;
75     }
76
77 }
 cpn方法,用来判断当前页pageNo,如果pageNo<1或为空,则设置为1源码
    /**
     * 检查页码 checkPageNo
     *
     * @param pageNo
     * @return if pageNo==null or pageNo<1 then return 1 else return pageNo
     */
    public static int cpn(Integer pageNo) {
        return (pageNo == null || pageNo < 1) ? 1 : pageNo;
    }

BrandMapper.java

 1 package cn.lzc.code.mapper;
 2
 3 import java.util.List;
 4
 5 import cn.lzc.code.po.Brand;
 6 import cn.lzc.code.po.vo.BrandQuery;
 7
 8 /**
 9  * 品牌Mapper
10  *
11  * @author admin
12  *
13  */
14 public interface BrandMapper {
15     /**
16      * 查询brand的总记录数
17      * @param brandQuery
18      *
19      * @return
20      */
21     public int getBrandCount(BrandQuery brandQuery);
22
23     /**
24      * 根据条件查询品牌,可分页
25      *
26      * @param brandQuery
27      * @return
28      */
29     public List<Brand> getBrandListByQuery(BrandQuery brandQuery);
30
31 }

BrandMapper.xml

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 3
 4 <!-- 返回结果与javaBean Brand对象中的属性 映射关系 -->
 5 <mapper namespace="cn.lzc.code.mapper.BrandMapper">
 6     <resultMap type="cn.lzc.code.po.Brand" id="brand">
 7         <result property="id" column="id" />
 8         <result property="name" column="name" />
 9         <result property="description" column="description" />
10         <result property="imgUrl" column="img_url" />
11         <result property="webSite" column="web_site" />
12         <result property="sort" column="sort" />
13         <result property="isDisplay" column="is_display" />
14     </resultMap>
15
16     <!-- 查询品牌总记录数 -->
17     <select id="getBrandCount" parameterType="cn.lzc.code.po.vo.BrandQuery"
18         resultType="Integer">
19         select
20         count(*)
21         from
22         bbs_brand
23         <where>
24             is_display=#{isDisplay}
25
26             <if test="name !=null">
27                 and name = #{name}
28             </if>
29         </where>
30     </select>
31
32     <!-- 根据条件查询品牌,可分页 -->
33     <select id="getBrandListByQuery" parameterType="cn.lzc.code.po.vo.BrandQuery"
34         resultMap="brand">
35         select
36         id,name,description,img_url,web_site,sort,is_display
37         from
38         bbs_brand
39         <where>
40             is_display=#{isDisplay}
41             <if test="name !=null">
42                 and name like ‘%${name}%‘
43             </if>
44         </where>
45         order by id asc
46         limit ${startRow} , ${pageSize}
47     </select>
48
49 </mapper>

jsp页面

    <tbody class="pn-ltbody">
    <c:forEach items="${pagination.list}" var="brand">
        <tr bgcolor="#ffffff" onmouseout="this.bgColor=‘#ffffff‘" onmouseover="this.bgColor=‘#eeeeee‘">
            <td>
            <input type="checkbox" value="${brand.id}" name="ids"/></td>
            <td align="center">${brand.id }</td>
            <td align="center">${brand.name }</td>
            <td align="center"><img width="40" height="40" src="${brand.allImgUrl}"/></td>
            <td align="center">${brand.description}</td>
            <td align="center">${brand.sort}</td>
            <td align="center">
                <c:if test="${brand.isDisplay==1}">是</c:if>
                <c:if test="${brand.isDisplay==0}">否</c:if>
            </td>
            <td align="center">
            <a class="pn-opt" href="#">修改</a> | <a class="pn-opt" onclick="if(!confirm(‘您确定删除吗?‘)) {return false;}" href="#">删除</a>
            </td>
        </tr>
    </c:forEach>
    </tbody>

<div class="page pb15">
    <span class="r inb_a page_b">
        <c:forEach items="${pagination.pageView }" var="page">
            ${page }
        </c:forEach>
    </span>
</div>

分页样式显示的样式及部分代码

 /**
     * 分页显示样示部分
     */
    public void pageView(String url,String params){

         pageView = new ArrayList<String>();

        if(this.pageNo != 1){
            pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo=1‘\"><font size=2>首页</font></a>");
            pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.pageNo-1)+"‘\"><font size=2>上一页</font></a>");
        }else{
            pageView.add("<font size=2>首页</font>");
            pageView.add("<font size=2>上一页</font>");
        }

        if(this.getTotalPage() <= 10){
            for (int i = 0; i < this.getTotalPage(); i++) {
                if((i+1)==this.pageNo){
                    pageView.add("<strong>"+this.pageNo+"</strong>");
                    i = i+1;
                    if(this.pageNo==this.getTotalPage())break;
                }
                pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(i+1)+"‘\">"+(i+1)+"</a>");
            }
        }else if(this.getTotalPage() <= 20){
            //没有把...加上
            int l = 0;
            int r = 0;
            if(this.pageNo<5){
                l=this.pageNo-1;
                r=10-l-1;
            }else if(this.getTotalPage()-this.pageNo<5){
                r=this.getTotalPage()-this.pageNo;
                l=10-1-r;
            }else{
                l=4;
                r=5;
            }
            int tmp =  this.pageNo-l;
            for (int i = tmp; i < tmp+10; i++) {
                if(i==this.pageNo){
                    pageView.add("<strong>"+this.pageNo+"</strong>");
                    i = i+1;
                    if(this.pageNo==this.getTotalPage()) break;
                }
                pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(i)+"‘\">"+(i)+"</a>");
            }

        }else if(this.pageNo<7){
            for (int i = 0; i < 8; i++) {
                if(i+1==this.pageNo){
                    pageView.add("<strong>"+this.pageNo+"</strong>");
                    i = i+1;
                }
                pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(i+1)+"‘\">"+(i+1)+"</a>");
            }
            pageView.add("...");
            pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.getTotalPage()-1)+"‘\">"+(this.getTotalPage()-1)+"</a>");
            pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.getTotalPage())+"‘\">"+(this.getTotalPage())+"</a>");
        }else if(this.pageNo>this.getTotalPage()-6){
            pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(1)+"‘\">"+(1)+"</a>");
            pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(2)+"‘\">"+(2)+"</a>");
            pageView.add("...");
            for (int i = this.getTotalPage()-8; i <this.getTotalPage() ; i++) {
                if(i+1==this.pageNo){
                    pageView.add("<strong>"+this.pageNo+"</strong>");
                    i = i+1;
                    if(this.pageNo==this.getTotalPage()) break;
                }
                pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(i+1)+"‘\">"+(i+1)+"</a>");
            }
        }else{
            pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(1)+"‘\">"+(1)+"</a>");
            pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(2)+"‘\">"+(2)+"</a>");
            pageView.add("...");

            pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.pageNo-2)+"‘\">"+(this.pageNo-2)+"</a>");
            pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.pageNo-1)+"‘\">"+(this.pageNo-1)+"</a>");
            pageView.add("<strong>"+this.pageNo+"</strong>");
            pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.pageNo+1)+"‘\">"+(this.pageNo+1)+"</a>");
            pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.pageNo+2)+"‘\">"+(this.pageNo+2)+"</a>");

            pageView.add("...");
            pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.getTotalPage()-1)+"‘\">"+(this.getTotalPage()-1)+"</a>");
            pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.getTotalPage())+"‘\">"+(this.getTotalPage())+"</a>");
        }
        if(this.pageNo != this.getTotalPage()){
            pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+(this.pageNo+1)+"‘\"><font size=2>下一页</font></a>");
            pageView.add("<a href=\"javascript:void(0);\" onclick=\"javascript:window.location.href=‘" + url + "?" + params + "&pageNo="+this.getTotalPage()+"‘\"><font size=2>尾页</font></a>");
        } else{
            pageView.add("<font size=2>下一页</font>");
            pageView.add("<font size=2>尾页</font>");
        }
        pageView.add("共<var>" + getTotalPage() + "</var>页 到第<input type=‘text‘ id=‘PAGENO‘  size=‘3‘ />页 <input type=‘button‘ id=‘skip‘ class=‘hand btn60x20‘ value=‘确定‘ onclick=\"javascript:window.location.href = ‘" + url + "?" + params + "&pageNo=‘ + $(‘#PAGENO‘).val() \"/>");
    }

原文地址:https://www.cnblogs.com/limn/p/9218913.html

时间: 2024-11-05 15:58:42

关于分页Pagination的使用的相关文章

分页Pagination

分页Pagination REST framework提供了分页的支持. 我们可以在配置文件中设置全局的分页方式,如: REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'PAGE_SIZE': 100 # 每页数目 } 也可通过自定义Pagination类,来为视图添加不同分页行为.在视图中通过pagination_clas属性来指明. from re

django 分页 pagination的使用记录

1.安装 pip install django-pagination 2.修改setting.py文件 INSTALLED_APPS = [ # ** 'pagination',] MIDDLEWARE_CLASSES = ( # ... 'pagination.middleware.PaginationMiddleware', ) TEMPLATE_CONTEXT_PROCESSORS = [ 'django.contrib.auth.context_processors.auth', 'dj

ElementUI分页Pagination自动到第一页

当数据量过多时,使用分页请求数据. 设置分页的页数自动回到第一页. 例: <div class="pagination"> <el-pagination background layout="prev, pager, next" :current-page.sync="currentPage" @current-change="current_change" :page-size="7"

分页/pagination

package org.pagination;import java.util.List; public interface Pagination<T> {public Integer getTotalElements();public List<T> getPageList();} package org.pagination; import java.util.List; public interface QueryHandler<T> {public Intege

五:Vue之ElementUI 表格Table与分页Pagination组件化

(注:本文适用于有一定Vue基础或开发经验的读者,文章就知识点的讲解不一定全面,但却是开发过程中很实用的) 在平时的web项目开发过程中,列表分页查询展示应用的很频繁,为了便于阅读并减少代码的冗余,所以对ElementUI的表格和分页组件进行了二次封装. 首先在工程下的components目录下创建common文件夹并新建commonTable.vue文件,添加如下代码: <template> <div id="commonTable"> <el-tabl

jquery+jquery.pagination+php+ajax 无刷新分页

<!DOCTYPE html> <html ><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>预约列表</title> <link rel="stylesheet" href="./static/pagination.css"> &

ajax 分页(jquery分页插件pagination) 小例3

<#macro ajaxPaginte url > <script type="text/javascript"> var PageSize = 10;//每页行数 var IsInit = true;//初始化 var search= function(pageIndex,initFlag) { var url = "${url}"; $.ajax({ type: 'GET', url: url, data: { pageNumber:pa

bootstrap table 服务器端分页--ashx+ajax

1.准备静态页面 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title></title> 6 <meta charset="utf-8" /> 7 <link rel="

Bootstrap 分页、标签、徽章、超大屏幕、页面标题

分页(pagination), 是一种无序列表 1.默认的分页(.pagination) 代码示例: 1 <ul class="pagination"> 2 <li><a href="#">«</a></li> 3 <li><a href="#">1</a></li> 4 <li><a href="#"