自己写的一个分页查询前台页码控制

<!doctype html>
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%>
<%@ include file="/pages/common/taglibs.jsp"%>
<html>
<head>
    <meta http-equiv=Content-Type content="text/html; charset=utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="renderer" content="webkit">
    <title>我的作品</title>
    <link rel="stylesheet" type="text/css" href="/css/newperson/per.css">
    <script src="/js/newperson/jquery-1.11.3.min.js"></script>
    <script src="/js/layer/layer.js"></script>
    <script type="text/javascript" src="/js/newperson/per.js"></script>
</head>
<body>
<f:view>
    <jsp:include page="/pages/common/header.jsp" />
    <div class="perM" style="height:1000px;"><div class="w1k clearfix">
        <div id="perMenu"></div>
        <div class="perR">
            <h1>我的作品</h1>
            <ul class="mypro clearfix" id="myfiles">
                <!--
                <li>
                    <div class="proI">              <img src="http://www.wodexiangce.cn/images/type/ZIP.jpg">             </div>
                    <p class="p1">文件一</p>
                    <p class="p3">2015-11-10  15:20:02</p>
                    <p class="p4">
                        <a href="" class="a1">继续制作</a>
                        <a href="" class="red right1">删除</a>
                    </p>
                </li>
                -->
            </ul>
            <div class="box5">
                <div class="fan">
                    <div class="right1" id="mypages">
                        <!--
                        <a href="javascript:void(0);" class="fanA0 no">上一页</a>
                        <a href="javascript:void(0);" class="fanA0">上一页</a>
                        <a href="javascript:void(0);" class="fanA act">1</a>
                        <a href="javascript:void(0);" class="fanA">2</a>
                        <a href="javascript:void(0);" class="fanA1">下一页</a>
                        <a href="javascript:void(0);" class="fanA1 no">下一页</a>
                        -->
                    </div>
                </div>
            </div>
        </div>
    </div></div>
    <jsp:include page="/pages/common/footer.jsp" />
</f:view>
<script type="text/javascript">
    var countNum = 0;//总页数
    var size = 8;//控制每页显示数

    $(function(){
        selectPageCount();//生成页码
    });

    //获取页码总数
    function selectPageCount(){
        $("#mypages").html("");//清空页码
        $.ajax({
            url:"/NewServlet",
            data:"methodName=getProductRecordCount",
            type: "POST",
            success:function(data){
                if(data>0){
                    addPage(data);//添加页码
                    selectedPage(1);//分页查询第一页
                }else{
                    layer.msg("您还没有作品!");
                }
            }
        });
    }

    //分页查询
    function selectedPage(pagenum){
        $("#myfiles").html("");//清空文件列表
        var start = (pagenum-1)*size;//控制开始查询的位置
        $.ajax({
            url:"/NewServlet",
            data:"methodName=getProductRecords&start="+start+"&size="+size,
            type: "POST",
            dataType: "json",
            success:function(data){
                if(data != null){
                    for (var i=0; i<data.fileinfo.length; i++){                addFile(data.fileinfo[i].id,data.fileinfo[i].name,data.fileinfo[i].firstpreurl,data.fileinfo[i].createtime);
                    }
                }
                pageUpOrDown(pagenum);//上一页与下一页按钮的显示与隐藏
                showOrHidden(pagenum);//页码的显示与隐藏
            }
        });
    }

    //生成文件
    function addFile(id,name,firstpreurl,createtime){
        var file =  "<li>"+
                        "<div class=\"proI\"><img src="+firstpreurl+"></div>"+
                        "<p class=\"p1\">"+name+"</p>"+
                        "<p class=\"p3\">"+createtime+"</p>"+
                        "<p class=\"p4\">"+
                            "<a href=\"\" class=\"a1\">继续制作</a>"+
                            "<a href=\"javascript:void(0);\" class=\"red right1\" onclick=\"delefile("+id+")\">删除</a>"+
                        "</p>"+
                    "</li>";
        $("#myfiles").append(file);
    }

    //生成页码
    function addPage(count){
        var flag = count%size;//判断是否整除
        var num = 0;
        if(flag == 0){
            num = parseInt(count/size);//整除的控制页数
        }else{
            num = parseInt(count/size)+1;//不能整除的控制页数
        }
        countNum = parseInt(num);
        var pageup = "<a href=\"javascript:void(0);\" class=\"fanA0 no\" onclick=\"pageUp();\">上一页</a>";
        var span1 = "<span id=\"span1\">...</span>";
        var span2 = "<span id=\"span2\">...</span>";
        var pagedown = "";
        if(countNum == 1){
            pagedown = "<a href=\"javascript:void(0);\" class=\"fanA1 no\" onclick=\"pageDown();\">下一页</a>";
        }else{
            pagedown = "<a href=\"javascript:void(0);\" class=\"fanA1\" onclick=\"pageDown();\">下一页</a>";
        }
        var pagecount = "<span>  共"+countNum+"页</span>";
        var page = "";
        for(var i=1; i<=countNum; i++){
            if(i == 1){
                page = page + "<a href=\"javascript:void(0);\" class=\"fanA act\" onclick=\"fanYe(this);\">"+i+"</a>";
            }else{
                page = page + "<a href=\"javascript:void(0);\" class=\"fanA\" onclick=\"fanYe(this);\">"+i+"</a>";
            }
        }
        var mypages = pageup + span1 + page + span2 + pagedown + pagecount;
        $("#mypages").append(mypages);
    }

    //上一页
    function pageUp(){
        var pages = $(".fanA");//所有的页
        var page = parseInt($($("#mypages .act")[0]).html());//当前页

        if(page>1 && page<=countNum){
            var goalPage = parseInt(page)-1;//目标页
            for(var i=0; i<pages.length; i++){
                var mypage = $(pages[i]).html();
                if(mypage == goalPage){
                    $("#mypages").find(".fanA").removeClass("act");//去掉所有页码的选中状态
                    $(pages[i]).addClass("act");
                    selectedPage(goalPage);//分页查询
                }
            }
        }
    }

    //下一页
    function pageDown(){
        var pages = $(".fanA");//所有的页
        var page = parseInt($($("#mypages .act")[0]).html());//当前页

        if(page>=1 && page<countNum){
            var goalPage = parseInt(page)+1;//目标页
            for(var i=0; i<pages.length; i++){
                var mypage = $(pages[i]).html();
                if(mypage == goalPage){
                    $("#mypages").find(".fanA").removeClass("act");//去掉所有页码的选中状态
                    $(pages[i]).addClass("act");
                    selectedPage(goalPage);//分页查询
                }
            }
        }
    }

    //直接点击页码翻页
    function fanYe(obj){
        $(obj).parent("#mypages").find(".fanA").removeClass("act");
        $(obj).addClass("act");
        var pagenum = parseInt($(obj).html());//点击的页码
        selectedPage(pagenum);//分页查询
    }

    //上一页和下一页按钮的显示与隐藏
    function pageUpOrDown(page){
        if(page == 1 && page != countNum){
            $(".fanA0").addClass("no");
            $(".fanA1").removeClass("no");
        }else if(page == countNum && page != 1){
            $(".fanA0").removeClass("no");
            $(".fanA1").addClass("no");
        }else if(countNum == 1){
            $(".fanA0").addClass("no");
            $(".fanA1").addClass("no");
        }else{
            $(".fanA0").removeClass("no");
            $(".fanA1").removeClass("no");
        }
    }

    //中间页码的显示与隐藏
    function showOrHidden(goalPage){
        var pages = $(".fanA");//所有的页
        //隐藏掉所有的页码
        for(var i=0; i<pages.length; i++){
            $(pages[i]).attr(‘style‘,‘display:none‘);
        }
        $("#span1").attr(‘style‘,‘display:none‘);
        $("#span2").attr(‘style‘,‘display:none‘);

        if(countNum > 5){
            if(goalPage<4){
                for(var a=1;a<=5;a++){//显示前五页
                    for(var i=0; i<pages.length; i++){
                        var mypage = $(pages[i]).html();//每一页的数字
                        if(mypage == a){
                            $(pages[i]).attr(‘style‘,‘display:inline-block‘);
                        }
                    }
                }
                $("#span1").attr(‘style‘,‘display:none‘);
                $("#span2").attr(‘style‘,‘display:inline-block‘);
            }else if(goalPage>=4 && goalPage<countNum-2){//显示中间五页
                for(var b=goalPage-2;b<=goalPage+2;b++){
                    for(var j=0; j<pages.length; j++){
                        var mypage = $(pages[j]).html();//每一页的数字
                        if(mypage == b){
                            $(pages[j]).attr(‘style‘,‘display:inline-block‘);
                        }
                    }
                }
                $("#span1").attr(‘style‘,‘display:inline-block‘);
                $("#span2").attr(‘style‘,‘display:inline-block‘);
            }else if(goalPage > countNum-3){//显示后五页
                for(var c=countNum-4;c<=countNum;c++){
                    for(var k=0; k<pages.length; k++){
                        var mypage = $(pages[k]).html();//每一页的数字
                        if(mypage == c){
                            $(pages[k]).attr(‘style‘,‘display:inline-block‘);
                        }
                    }
                }
                $("#span1").attr(‘style‘,‘display:inline-block‘);
                $("#span2").attr(‘style‘,‘display:none‘);
            }
        }else{
            //显示所有的页码
            for(var i=0; i<pages.length; i++){
                $(pages[i]).attr(‘style‘,‘display:inline-block‘);
            }
            $("#span1").attr(‘style‘,‘display:none‘);
            $("#span2").attr(‘style‘,‘display:none‘);
        }
    }</script>
</body>
</html>

以上是前台代码,后台代码写的是servlet,里面直接调用的是service里的方法,前后台数据传递使用的是json。

上面的代码中只涉及到分页控制,页面里面的“继续制作”和“删除”功能没有实装,我删掉了。

下面是做出来的效果:

时间: 2024-11-03 21:56:47

自己写的一个分页查询前台页码控制的相关文章

wg_pagenation 1.0 自己写的一个分页插件_基于Jquery

前言: 现在这个分页插件也不少,感觉缺点什么,所以自己就写了一个,喜欢的人就拿去用......有bug和建议可以回复,我有空就修改和答复..... 感谢我的基友,刘总...他主要给本插件写配套主题css; 特点: 整合ajax可以异步和后台交互数据,定制化选项多.和Jquery的pagenation比较类似,但是功能更多,选择性更多. 当前版本:1.0 完成日期:20150815 效果图: White.css的效果图: default.css效果图: 上图上向下的箭头表示的是每一个可选择和更改的

使用纯js写的一个分页

上图晒效果: 网上确实有很多分页的插件以及开源代码,单本是一个后台开发猿,前台css等样式还驾驭不住,所以就开始自己去写了.其实这个分页原理很简单,就是用ajax往后台传值(当前页码),后台使用limit进行分页. 因为这是我自己第一次动手用js写分页,写的应该也不是很完美,有些公共的没有抽取出来,但是用起来还是可以的,这块代码是可以把它当做公共的分页去处理的,我就是用 这块代码写了两个稍微不同一些的分页!公共的代码抽取的也差不多,主要就是ajax后台以及返回的值不同而已,只要把总页码的值获取到

自己写了一个分页类

第一次发文章,格式不太规范,不过以后会逐渐改正的,请大家多多指正 ? public class Pager     {         private string _pageurl;         private int _pagecount;         private int _currentpage;         public Pager(string pageurl, int pagecount, int currentpage)         {             

自己写的一个分页控件类(WinForm)

using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Text; using System.Windows.Forms; namespace xYuanShian.ControlLibrary { /// <summary> /// 翻页控件 /// </summary> pu

写的一个模糊查询的接口

流程图: 具体代码: #-*- coding:utf-8# 脚本功能:# 用户可以模糊查询员工信息# 显示匹配了多少条,匹配字符需要高亮显示# 作者:Elle# 编写日期2017年11月28日 import xlrd def SearchInfo(Key_Word): Match_Flag = 0 UserInfoTable = xlrd.open_workbook("D:\PyProject\Exercise\Data\UserInfo.xls",formatting_info=Tr

AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务-(个人拙笔)

AspNet.WebAPI.OData.ODataPQ 这是针对 Asp.net WebAPI OData 协议下,查询分页.或者是说 本人在使用Asp.Net webAPI 做服务接口时写的一个分页查询服务支持的扩展库. 它支持 MS Asp.Net WebAPI OData 协议下获取记录总数进行分页操作. 其实,分页真的简单,简单得不能再简单了.分页总数,每页大小.就够了,但是怎么都找不到 Asp.Net WebAPI OData 协议下获取总记录数的例子 或者找到例子,按照做了N遍,就是

(easyui datagrid+mvc+json)之asp.net分页查询

最近在做分页查询的功能,在网上也翻看了不少,但是自己的吸收能力就差了好多,而且当时最大的想法就是,怎么就没有我想要的那种,既是easyui的,又要用mvc的架构,还要能够实现底层的分页传值,用.net平台写的demo,那时就想,等我做出来了,我也要写一篇分页查询的博客,专门为了实现这种需求来做的demo. 效果图 前台view <table id="list_data" class="easyui-datagrid" style="width:107

Spring data JPA 理解(默认查询 自定义查询 分页查询)及no session 两种处理方法

简介:Spring Data JPA 其实就是JDK方式的动态代理 (需要一个接口 有一大堆最上边的是Repository接口来自org.springframework.data.repository,还有CrudRepository接口及一个实现类SimpleJpaRepository),只要有接口就可以查询数据库了,实际上就是proxy的方法,具体查询的方法有两种一种是简单式就是方法名为findBy+属性名+(AndOrIsEquals等)另一种是自定义的方法就是属性名是瞎起的向abc xy

基于Mysql数据库的SSM分页查询

前言: Hello,本Y又来了,"分页"在我们使用软件的过程中是一个很常见的场景,比如博客园对于每个博主的博客都进行了分页展示.可以简单清晰的展示数据,防止一下子将过多的数据展现给用户,毕竟用户的阅读能力和短期接受力都有限,使用分页可以避免带给用户浏览上的不舒服感,利用它可以带给用户良好的体验,便于浏览和查询数据.那么本期我们的博客就来探讨关于分页,使用的Java的框架是Spring+Springmvc+mybatis,这也是目前企业非常流行的搭配方式,使用的数据库是Mysql,我们将