在服务端实现 分页功能 的项目中,如何实现分页中的    上一页 和 下一页    的启用和禁用,在自己的实践中,经历痛苦的摸索.网上也没有找到有关的针对性文章, 经过反复琢磨, 最终成功达成效果; 分享给初学者和同道.也为自己做个记录.

        应用场景: node项目,后端操作数据库,实现分页功能 (服务端分页控制),并设置分页中的  "上一页" 和 "下一页" 的启用和禁用功能

一. 后端处理数据库,查寻数据, 实现分页,(服务端分页控制)

二.后端传递数据,在前端通过模板 art-template 实现分页,

三.如何处理 分页中的    上一页 和 下一页的启用和禁用?

        1, 当前页处于第1页时, 需要 上一页 的按键被禁用, 当处于 其它页时,恢复 上一页 的使用功能

        2. 当前页处于 最后一个页码时, 下一页 的按键 应该被禁用, 当处于其它页时, 下一页 的功能恢复使用

四. 代码逻辑实现:

1. 后端处理

// 后端路由
Router.get("/poem", (req, res, next) => {

    // 定义当前页,这个当前页就是客户端点出时发送过来的页码数,把它变成number类型的十进抽数值
    const page = Number.parseInt(req.query.page, 10);

    // 定义每页的显示数
    const pageSize = 5;

    // 操作数据库集合中的数据

   PoemsOne
        .find()
        .skip((page - 1) * pageSize)
        .limit(pageSize)
        .exec((err, poemsones) => {
            if (err) {
                return next(err);
            }
            PoemsOne.countDocuments((err, count) => {
                if (err) {
                    return next(err);
                }
                const totalPages = [];
                const totalPage = Math.ceil(count / pageSize);
                for (let i = 0; i < totalPage; i++) {
                    totalPages.push(i);
                }
                res.render("poem.html", {
                    poemsones,
                    totalPages,
                    page,
                });
            });
        });
});

2. 前端模板处理: (totalPages是后端传递过来的一个数值数组) bootstrap框架

<ul class="pagination">
        <!-- 对上一页添加逻辑判断,当前页小于等于1 时, 对这个键设置禁用状态;-->
        {{if page<=1}}
        <li class="disabled"><a href="javascript:;">上一页</a></li>
        {{else}}
        <!-- 当处在其它页码时,恢复启用上一页的功能-->
        <li><a href="/poem?page={{page-1}}">上一页</a></li>
        {{/if}}


        <!-- 根据数据库的数据进行分页循环遍历 -->
        {{each totalPages}}
              代码略...
        {{/each }}
        
        <--对下一页添加逻辑判断,当前页值 大于等于 现有的页数时, 下一页按键功能被禁用,>
        {{if page>=totalPages.length}}
        <li class="disabled"><a href="javascript:;">下一页</a></li>
        {{else}}

        <--当处在其它页码时,恢复启用下一页的功能>
        <li><a href="/poem?page={{page+1}}">下一页</a></li>
        {{/if}}
</ul>

通过以上,成功实现了简单的分页中 上一页 和 下一页  功能的启用和禁用.

技术简单, 大神和资深者可直接无视,如有错误,诚恳欢迎批评指正! 如对初学者稍有助益, 请点个好评

 

更多推荐

服务端分页实现上一页和下一页的启用和禁用