Pagination是一款不但加载数据而且还能进行分页的jQuery插件,实现的过程是:先一次性将需要显示的数据载入到页面中,然后根据当前页面的索引号,获取指定某页需要显示的数据,并将这部分数据追加到内容显示容器中,从而实现分页加载数据的效果。

       根据这一过程,Pagination插件在加载和显示数据时,时一次性,及时的,而不是异步请求,因此,它在执行分页显示数据时,速度很快,用户体验很好。但这种一次性加载数据到页面的操作并不适合对大量数据的请求,因此在页面中,如果是小数据量的分页显示需求,使用该插件还是十分好的。

Pagination插件的使用:

(1)插件文件:

       Js-8-12/jquery.pagination.js

(2)下载地址:

       http://d-scribe.de/webtools/jquery-pagintion/demo_options.htm

(3)功能描述:

       在页面中,通过数据分页插件,以列表的形式显示全部的订单信息,包括"订单号","姓名","性别","总金额","详细"等内容。用户单击"详细"列中"查看"链接时,再次通过数据分页插件显示对应订单的全部图片信息。

(4)实现代码:

<Link href="Css-8-12/jquery.pagination.css" rel="stylesheet" type="text/css" />

<script type="text/javascript" src="Jscript/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="Js-8-12/jquery.pagination.js"></script>

<style type="text/css">
    ...省略部分代码
</style>

<script type="text/javascript">
    function psCallback(pi,jq){
        //获取指定页码中的内容
        var newcxt = $('#Result ul:eq(' + pi + ')').clone();
        //向内容区添加指定页码的内容
        $('#Content').empty().append(newcxt);
        return false;
    }
    function isCallback(pi,jq){
        //隐藏图片区域中的图片
        $('#Picture img:visible').hide();
        //显示图片区域中指定页码的图片
        $('#Picture img:eq(' + pi + ')').show();
    }
    function initPagination(){
        //获取全部记录数量
        var SumNum = $('#Result ul').length;
        //记录显示区绑定数据分页插件
        $(".divpage").pagination(SumNum,{
            num_edge_entries:1,
            callback:paCallbck,
            items_per_page:1
        });
        //获取全部图片数量
        SumNum = $('#Picture img').length;
        //图片显示区绑定另一个数据分页插件
        $.(".divimg").pagination(SumNum,{
           callback:paCallbck,
           items_per_page:1 
        });
    }
    function showPic(){
        $("ImgLst").toggle();
    }
    $(function(){
        //调用数据分页插件
        initPagination();
    });
</script>
<div id="Iframe">
    <div class="divpage"></div>
    <br style="clear:both" />
    <ul>
        <li class="li">
            <span>订单号</span>
            <span>姓名</span>
            <span>性别</span>
            <span>总金额</span>
            <span>详细</span>
        </li>
    </ul>
    <div id="Content">
        <span class="spntip">正在加载...</span>
    </div>
    <div class="divpage"></div>
    <div id="Result">
       <ul>
            <li>
                <span>10101</span>
                <span>张小虎</span>
                <span>男</span>
                <span>465.98</span>
                <span>
                    <a href="javascript:showPic()">
                        查看
                    </a>
                </span>
            </li>
            <li>
                <span>10101</span>
                <span>张小虎</span>
                <span>男</span>
                <span>465.98</span>
                <span>
                    <a href="javascript:showPic()">
                        查看
                    </a>
                </span>
            </li>
            <li>
                <span>10102</span>
                <span>刘海</span>
                <span>女</span>
                <span>600.12</span>
                <span>
                    <a href="javascript:showPic()">
                        查看
                    </a>
                </span>
            </li>
            <li>
                <span>10103</span>
                <span>李烨海</span>
                <span>男</span>
                <span>930.12</span>
                <span>
                    <a href="javascript:showPic()">
                        查看
                    </a>
                </span>
            </li>
        </ul>
        <ul>
            <li>
                <span>10201</span>
                <span>张三百</span>
                <span>男</span>
                <span>565.98</span>
                <span>
                    <a href="javascript:showPic()">
                        查看
                    </a>
                </span>
            </li>
            <li>
                <span>10202</span>
                <span>接小海</span>
                <span>男</span>
                <span>900.12</span>
                <span>
                    <a href="javascript:showPic()">
                        查看
                    </a>
                </span>
            </li>
            <li>
                <span>10203</span>
                <span>李明明</span>
                <span>女</span>
                <span>630.12</span>
                <span>
                    <a href="javascript:showPic()">
                        查看
                    </a>
                </span>
            </li>
        </ul>
        <ul>
            <li>
                <span>10301</span>
                <span>程虎</span>
                <span>男</span>
                <span>765.98</span>
                <span>
                    <a href="javascript:showPic()">
                        查看
                    </a>
                </span>
            </li>
            <li>
                <span>10302</span>
                <span>张明海</span>
                <span>女</span>
                <span>802.12</span>
                <span>
                    <a href="javascript:showPic()">
                        查看
                    </a>
                </span>
            </li>
            <li>
                <span>10303</span>
                <span>胡小明</span>
                <span>男</span>
                <span>630.12</span>
                <span>
                    <a href="javascript:showPic()">
                        查看
                    </a>
                </span>
            </li>
        </ul>
    </div>
    <div id="ImgLst">
        <div id="Picture" class="pic">
            <img src="Images-8-12/pic08.jpg" />
            <img src="Images-8-12/pic09.jpg" />
            <img src="Images-8-12/pic10.jpg" />
            <img src="Images-8-12/pic11.jpg" />
        </div>
        <div class="divimg"></div>
    </div>
</div>

(5)代码分析:

       在本示例中,在使用数据分页插件Pagination之前,首先在页面的<head>元素中导入对应的CSS样式和插件文件,代码如下:

<Link href="Css-8-12/jquery.pagination.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="Jscript/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="Js-8-12/jquery.pagination.js"></script>

       在导入插件对应文件,需要注意与jQuery框架的先后顺序,因为数据分页插件Pagination是基于jQuery开发的,应该首先导入jQuery框架,然后导入插件对应的JS文件,否则使用将会有异常。

       在完成插件导入后,接下来的工作就是编写对应的JavaScript代码,将页面中的内容元素与数据分页插件相绑定,实现数据分页显示的效果,核心代码如下:

function psCallback(pi,jq){
        //获取指定页码中的内容
        var newcxt = $('#Result ul:eq(' + pi + ')').clone();
        //向内容区添加指定页码的内容
        $('#Content').empty().append(newcxt);
        return false;
    }
    function isCallback(pi,jq){
        //隐藏图片区域中的图片
        $('#Picture img:visible').hide();
        //显示图片区域中指定页码的图片
        $('#Picture img:eq(' + pi + ')').show();
    }
    function initPagination(){
        //获取全部记录数量
        var SumNum = $('#Result ul').length;
        //记录显示区绑定数据分页插件
        $(".divpage").pagination(SumNum,{
            num_edge_entries:1,
            callback:paCallbck,
            items_per_page:1
        });
        //获取全部图片数量
        SumNum = $('#Picture img').length;
        //图片显示区绑定另一个数据分页插件
        $.(".divimg").pagination(SumNum,{
           callback:paCallbck,
           items_per_page:1 
        });
    }
    function showPic(){
        $("ImgLst").toggle();
    }
    $(function(){
        //调用数据分页插件
        initPagination();
    });
    ...省略部分代码

       在上述代码中,首先自定两个用户插件回调的函数psCallback和isCallback,分别用于记录和图片数据在绑定数据分页插件时的回调处理;在这两个回调函数中都有两个参数:

       pi:int类型,表示新的页码索引号。

       jq:一个jQuery对象,表示加载分页链接数据的容器。

       在编写完回调函数后,接下来自定义一个initPagination()函数,将页面中的元素数据分页插件相绑定,绑定的格式如下:

$(内容显示容器).pagination(num_display_entries,[options])

       在上述代码中,参数num_display_entries为必选项,表示需要显示的总条目数量,页面一次性加载后的记录总量;参数options算是一个可选项对象,该对象可以设置数据插件绑定元素时的相关属性,如显示主体记录条数,上一页或下一页对应的文本内容,该对象的详细功能属性和事件说明如下所示:

options对象的常用参数

参数名称

功能描述

items_per_page

每页显示的条目数量,默认值为10。

num_display_entries

连续分页页码主体部分显示的数量,默认值为10。

current_page

当前选中的页面,默认值为0,表示第1页。

num_edge_entries

分页页码首尾部分显示的条目数量,默认值为10。

link_to

分页时链接,默认值为"#"。

prev_text

"上一页"分页按钮显示的文字内容,默认值为"Prev"。

next_text

"下一页"分页按钮显示的文字内容,默认值为"Next"。

ellipse_text

省略的分页页面的表示文字,默认值为"..."

prev_show_always

是否显示"上一页"分页按钮,默认值为"true",表示显示。

next_show_always

是否显示"下一页"分页按钮,默认值为"true",表示显示。

renderer

分页时的模块名称,默认值为"defaultRenderer"。

show_if_single_page

如果只有一页,是否显示分页导航,默认值为false,表示不显示。

load_first_page

是否显示第1页,默认值为false,表示不显示。

callback

数据插件绑定时,执行的回调函数,默认值为无执行效果。