上一文说到过 Paginationjs 插件简单使用,它只是针对于少量数据。
Paginationjs 插件也支持 Ajax 请求数据。
 在使用前,配置2个 div,一个用于展示分页,一个用于展示数据。
如,msg_page 和 msg_list。之后,通过 dataSource 设置请求链接,通过 callback 对这里数据进行处理。
根据需要:通过 alias 配置分页参数别名,locator 指定列表数据属性,totalNumberLocator 设置总记录数。
<!DOCTYPE html>
<html>
<head>
    <title>Paginationjs 插件简单使用</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link href="http://pagination.js.org/dist/2.6.0/pagination.css" rel="stylesheet" type="text/css">
    <style type="text/css">
        ul, li {
            list-style: none;
        }
        #wrapper {
            width: 900px;
            margin: 20px auto;
        }
    </style>
</head>
<body>
<div id="wrapper">
  <section>
    <div class="msg_page"></div>
    <div class="msg_list"></div>
  </section>
</div>
<script src="http://code.jquery.com/jquery-3.6.1.js"></script>
<script src="http://pagination.js.org/dist/2.6.0/pagination.js"></script>
<script>
$(function() {
    // Ajax 分页
    $('#msg_page').pagination({
        // 配置分页参数别名
        alias: {
            pageNumber: 'pageNo', // 第几页
            pageSize: 'pageSize' // 分页大小
        },
        // 请求地址
        dataSource: '/msg/listData',
        // 响应后,哪个属性是数据项
        locator: 'list',
        // 响应后,获取总记录数
        totalNumberLocator: function (response) {
            return response.count;
        },
        // 分页大小
        pageSize: 6,
        // 配置分页展示效果
        ulClassName: "pagination pagination-sm inline",
        // 分页数据处理
        callback: function (response, pagination) {
            let msgList = [];
            let data;
            msgList.push("<ul class=\"todo-list ui-sortable\">")
            for (const x in response) {
                data = response[x];
                msgList.push("<span>" + data["title"] + "</span>");
            }
            msgList.push("</ul>");
            // 渲染列表
            $("#msg_list").html(msgList.join(""));
        }
    });
</script>
</body>
</html>相关资源: