zoukankan      html  css  js  c++  java
  • javascript : 客户端分页脚本

    一般我们认为分页有服务器分页和客户端分页两种。如果数据行本身不多,那么其实我更倾向于将数据一次性读取过来,然后通过下面的脚本在页面里面实现分页效果。

    其实主要思路就是将部分行隐藏起来。

    <script src="js/jquery-1.3.2-vsdoc.js" type="text/javascript"></script>
    <script language="javascript" type="text/javascript">

        var current = 1;

        function SetNavigationButton(current, total) {
            //如果是第一页,则前两个按钮是要隐藏的

            $("#first,#next,#prev,#last").css("display", "inline");
            if (current == 1) {
                $("#prev,#first").css("display", "none");
                return;
            }
            //如果是最后一页,则后两个按钮是要隐藏的
            if (current == total) {
                $("#next,#last").css("display", "none");
                return;
            }

        }

        function SetRowStatus(current,pagesize,pagecount) {
            //先将所有的隐藏掉,
            $("tr").css("display", "none").css("background-color","white");

            //显示第一页

            for (var i =((current-1)*pagesize+1); i < (current*pagesize + 1); i++) {
                $("tr[Id=" + i + "]").css("display", "block");
            }

            SetNavigationButton(current, pagecount);

        }

        $(function() {
            //为所有的行加一个编号

            var rowId = 1;
            $("tr").each(function() {
                $(this).attr("Id", rowId++);
            });

            var rowcount = parseInt(rowId - 1);
            var pagesize = parseInt($("table#result").attr("pagesize"));
            var pagecount = Math.ceil(rowcount / pagesize); //向上取整

            if (pagecount > 1) {

                //显示第一页
                current = 1;
                SetRowStatus(current, pagesize, pagecount);

                $("div#pager").css("display", "block");

                $("#currentPage").text("1");
                $("#totalPage").text(pagecount.toString());

                $("#first").click(function() {
                    current = 1;
                    SetRowStatus(current, pagesize, pagecount);
                });

                $("#prev").click(function() {
                    current = current - 1;
                    SetRowStatus(current, pagesize, pagecount);

                });

                $("#next").click(function() {
                    current = current + 1;
                    SetRowStatus(current, pagesize, pagecount);

                });

                $("#last").click(function() {
                    current = pagecount;
                    SetRowStatus(current, pagesize, pagecount);

                });

            }

        });
    </script>

    image

  • 相关阅读:
    《微服务架构设计》——Eventuate Tram框架订阅/消费模式源码解析
    Spring Cloud LoadBalancer原理讲解及自定义负载均衡器
    聊一下 TS 中的交叉类型
    如何理解 TS 类型编程中的 extends 和 infer
    TS 中 never 类型的妙用
    28岁大龄青年相亲记——2021年总结与思考
    Kafka从入门到放弃(三)—— 详说消费者
    Kafka从入门到放弃(二) —— 详说生产者
    Kafka从入门到放弃(一) —— 初识Kafka
    短时间复习通过2021上半年软考软件设计师(附资料)
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1599253.html
Copyright © 2011-2022 走看看