zoukankan      html  css  js  c++  java
  • ajax js分页算法分析

    显示效果:
    [页面总数小于等于10,全部显示,当前页特殊显示]
    上一页  1   2   3   4   5   6   7   8   9   10   下一页 

    [页面总数大于10,部分显示,当前页特殊显示]
    上一页  1   2   3   …   20   下一页       [当前页面为首页时,上一页不可用]
    上一页  1   2   3   4    …   20   下一页
    上一页  1   2   3   4   5    …   20   下一页
    上一页  1   2   3   4   5   6   …   20   下一页
    上一页  1   …    3     4    5    6    7     …  20  下一页  
    上一页  1   …   14   15  16  17  18    ...  20  下一页
    上一页  1   …   15   16  17  18  19  20  下一页
    上一页  1   …   16   17  18  19  20  下一页
    上一页  1   …   17   18  19  20  下一页
    上一页  1   …   18   19  20  下一页  [当前页面为末页时,下一页不可用]    

    算法提取:
    0
    、页码显示规则:
              当前页为首页时不显示上一页;      上一页  1   2   3   …   20   下一页 
              当前页为尾页时不显示下一页;      上一页  1   …   17   18  19  20  下一页
    1、页面总数(n)<=10 {
              显示全部页码:上一页  1   2   3   4   5   6   7   8   9   10   下一页
        }

    2、页面总数(n) > 10 {
    2.1     当前页码 <=  4 {
                     左侧显示所有 +  当前页码  +  右侧2个页码 + ... + 尾页
                            上一页  1   2   3   …   20   下一页       
                            上一页  1   2   3   4    …   20   下一页
                            上一页  1   2   3   4   5    …   20   下一页 
                            上一页  1   2   3   4   5   6   …   20   下一页
              }

    2.2      当前页码 > 4 且<= 页面总数(n) - 3 {
                      首页  + ... + 左侧2个页码  + 当前页码  + 右侧2个页码  + ...  +  尾页
                            上一页  1   …    3     4    5    6    7     …  20  下一页
                            上一页  1   …   14   15  16  17  18    ...  20  下一页
              }
    2.3      当前页码 > 页面总数(n) - 3 {
                      首页 + ... +  左侧2个页面 +  当前页码  +  右侧显示所有
                            上一页  1   …   15   16  17  18  19  20  下一页
                            上一页  1   …   16   17  18  19  20  下一页
                            上一页  1   …   17   18  19  20  下一页
                            上一页  1   …   18   19  20  下一页
              }
        }

    -----------------------------上面和下面均为转载他人的。下面为翻译为java语言,在程序里使用很方便---------------------------------

    public class PageTest {
    
        public static String pageControl(int page,int count){
            String strHtml = "";
            
            if(page > 1){
                strHtml += "上一页";
            }
            if(count <= 10){
                for(int i = 1;i<=count;i++){
                    if(page == i){
                        strHtml+=" ["+i+"]";
                    }else{
                        strHtml+=" "+i;
                    }
                }
            }else{
                if(page<4){
                    for(int i = page-1;i>0;i--){
                        strHtml+=" "+i;
                    }
                    strHtml+=" ["+page+"]";
                    strHtml+=" "+(page+1);
                    strHtml+=" "+(page+2);
                    strHtml+=" ...";
                    strHtml+=" "+count;
                    
                }
                if(page>4 && (page<=count-3)){
                    strHtml+=" "+1;
                    strHtml+=" ...";
                    strHtml+=" "+(page-2);
                    strHtml+=" "+(page-1);
                    strHtml+=" ["+page+"]";
                    strHtml+=" "+(page+1);
                    strHtml+=" "+(page+2);
                    strHtml+=" ...";
                    strHtml+=" "+count;
                    
                }
                if(page>count-3){
                    strHtml+=" "+1;
                    strHtml+=" ...";
                    strHtml+=" "+(page-2);
                    strHtml+=" "+(page-1);
                    strHtml+=" ["+page+"]";
                    for(int i = page+1;i<count;i++){
                        strHtml+=" "+i;
                    }
                }
                
            }
            
            
            if(page < count){
                strHtml += "下一页";
            }
                
            return strHtml;
        }
        
        public static void main(String[] args) {
            System.out.println(PageTest.pageControl(6, 20));
        }
    }

        

  • 相关阅读:
    oc-autorelease
    oc-循环引用问题
    oc-内存管理总结
    tomcat-各文件夹作用解析
    oc-多对象内存管理
    oc-arc(Automatic Reference Counting 自动引用机制) 与 内存管理
    tomcat-context.xml
    oc-set方法内存管理 和 @property的参数
    【转载】java学习线路
    一段shell脚本
  • 原文地址:https://www.cnblogs.com/wuqun/p/4674184.html
Copyright © 2011-2022 走看看