首页 > 其他分享 >后端处理分页

后端处理分页

时间:2023-10-09 13:23:00浏览次数:25  
标签:function 分页 处理 else htmls var data pagingSet

html结构

<div class="clear"></div>
   <div class="paging">
    <a class="prevpage">&lt;</a>
    <div class="pagenum"></div>
    <a class="nextpage">&gt;</a>
  </div>
<div class="clear"></div>';
  

CSS分页样式

.paging {
  margin: 20px auto;
  display: none;

  a {
    width: 32px;
    height: 32px;
    line-height: 32px;
    background-color: white;
    border: 1px solid #ECEDEE;
    border-radius:4px;
    margin: 0px 5px;
    cursor: pointer;
    display: block;
    float: left;
  }


  .pagenum {
    float: left;

    a {
      &.selected {
        background-color: #F85415;
        color: white;
        border-color: #F85415;
      }

      &.moreIcon {
        cursor: text;
      }
    }
  }
}

Jquery设置

数据结构参考:

image

// 视频
var pagingHtmlObj1 = $(".tabCont1 .paging"); //html分页对象
var pagingSet1 = {
  curObj: 1, //第一个对象 只是用来标记
  curPage: 1, //当前页
  totalPage: 1, //总页码
  perPage: 10 //每页显示10条数据
};
(function ($) {
  $.myPaging = {
    init: function () {
      //初始化分页点击事件
      $.myPaging.initPage(pagingHtmlObj1, pagingSet1);

      //初始化获取的列表数据
      $.myPaging.getListInfo(pagingSet1);

    },
    //从服务器获取的list数据
    getListInfo: function (pagingSet1) {
      var pagingSet = pagingSet1;
      var pagingHtmlObj = pagingHtmlObj1;
      var data = {
        url: '后台接口地址'
      };
      //分页设置
      data.iDisplayStart = (pagingSet.perPage) * (pagingSet.curPage - 1); //起始页
      data.iDisplayLength = pagingSet.perPage; //获取数据长度 


      //ajax获取数据
      $.general.AjaxRequest(data, function (data) {
        if (data.success && data) {
          if (data.data.aaData.length > 0) {
            //分页设置
            var totalRecords = data.data.iTotalDisplayRecords;
            var total_page = Math.ceil(totalRecords / pagingSet.perPage);
            if (total_page == 1) {
              pagingHtmlObj.css('display', 'none');
            } else {
              pagingHtmlObj.css('display', 'inline-table');
            }
            //分页设置
            var articleDataObj = data.data.aaData;
            var htmls = '';
            //中间拼接html
            $(".articleList").html(htmls);

            //分页设置
            pagingSet.totalPage = total_page;
            $.myPaging.initPageNum(pagingHtmlObj, pagingSet);
            //分页设置
          } else {
            pagingHtmlObj.hide();
            var htmls = '<div class="norecord">' +
              '<span>暂无数据<span>' +
              '</div>';
            $(".articleList").html(htmls);
          }
        } else {
          $.general.showMsg(data.reason);
        }
      }, null, null, true);
    },


    //分页开始 $dom paging对象
    initPage: function ($dom, pagingSet) {
      //上一页
      $dom.find(".prevpage").click(function () {
        $.myPaging.turnPage(pagingSet.curPage - 1, pagingSet);
      });
      //下一页
      $dom.find(".nextpage").click(function () {
        $.myPaging.turnPage(pagingSet.curPage + 1, pagingSet);
      });
      //首页
      $dom.find(".firstpage").click(function () {
        $.myPaging.turnPage(1, pagingSet);
      });
      //尾页
      $dom.find(".lastpage").click(function () {
        $.myPaging.turnPage(pagingSet.totalPage, pagingSet);
      });
      //中间页1,2,3
      $dom.on("click", ".pagenum .changeNum", function () {
        $.myPaging.turnPage($(this).text(), pagingSet);
      });
    },
    turnPage: function (page, pagingSet) {
      if (parseInt(page) < 1 || parseInt(page) > parseInt(pagingSet.totalPage)) {
        return;
      } else {
        pagingSet.curPage = parseInt(page);
        //加载列表信息
        var curObj = pagingSet.curObj;
        if (curObj == "1") {
          $.myPaging.getListInfo(pagingSet1);
        }
      }
      //翻页完毕,定位到指定的位置
      $('html, body').animate({
        scrollTop: $('.topTab').offset().top
      });
    },
    initPageNum: function ($dom, pagingSet) {
      var $pageNum = $dom.find(".pagenum").html("");
      var htmls = '';
      var total_Page = parseInt(pagingSet.totalPage);
      var cur_Page = parseInt(pagingSet.curPage);
      if (total_Page > 4) {
        //判断当前页
        if (cur_Page < 4) {
          for (var i = 1; i <= 4; i++) {
            if (cur_Page == i) {
              htmls += "<a class='selected changeNum'>" + i + "</a>";
            } else {
              htmls += "<a class='changeNum'>" + i + "</a>";
            }
          }
          htmls += '<a class="moreIcon">...</a><a class=\'changeNum\'>' + pagingSet.totalPage + '</a>'
        } else {
          if (cur_Page > 4) {
            htmls += '<a class=\'changeNum\'>1</a><a class="moreIcon">...</a>';
          }
          if (cur_Page + 3 < total_Page) {
            for (var i = cur_Page - 3; i <= cur_Page + 3; i++) {
              if (cur_Page == i) {
                htmls += "<a class='selected changeNum'>" + i + "</a>";
              } else {
                htmls += "<a class='changeNum'>" + i + "</a>";
              }
            }
            htmls += '<a class="moreIcon">...</a><a  class=\'changeNum\'>' + pagingSet.totalPage + '</a>'
          } else {
            for (var i = cur_Page - 3; i <= total_Page; i++) {
              if (cur_Page == i) {
                htmls += "<a class='selected changeNum'>" + i + "</a>";
              } else {
                htmls += "<a  class='changeNum'>" + i + "</a>";
              }
            }
          }
        }
      } else {
        //展示全部页数
        for (var i = 1; i <= total_Page; i++) {
          if (cur_Page == i) {
            htmls += "<a class='selected changeNum'>" + i + "</a>";
          } else {
            htmls += "<a class='changeNum'>" + i + "</a>";
          }
        }
      }
      $pageNum.html(htmls);
    },
    //分页结束


  }
})(jQuery);

image

如果是采用"加载更多"的方式来展示数据,参考如下

image

标签:function,分页,处理,else,htmls,var,data,pagingSet
From: https://www.cnblogs.com/songxia/p/17751496.html

相关文章

  • 前端处理分页
    html页面结构<divclass="pagingInfo"><spanclass="pagepre">上一页</span><spanclass="num"><emclass="curPage">1</em>/<emclass="totalPage">5</em></span>......
  • 电脑输入密码后出现 目前没有可用的登录服务器处理登录请求
    电脑输入密码后出现目前没有可用的登录服务器处理登录请求   解决方案:登录时去掉Administrator前面的域名。 ......
  • 快慢指针用于数组的原地处理
    删除指定元素27.移除元素删除有序数组的重复项26.删除有序数组中的重复项删除有序数组重复项超过K次的部分80.删除有序数组中的重复项II整体来说,这类题目所用的方法都是快慢指针,只是其实现细节不尽相同而已。对我来说,做这种题目最好自己在纸上写写,不然很容......
  • U8供应商付款折扣处理
    1.在应付管理里选择手工核销:2.在核销先选择供应商,然后在核销界面选择本次折扣金额或者折扣率,我这里仅做演示3.然后在制单生成凭证指定对应科目即可:凭证选择核销即可,4.在凭证制单界面制单即可 ......
  • 《动手学深度学习 Pytorch版》 8.2 文本预处理
    importcollectionsimportrefromd2limporttorchasd2l解析文本的常见预处理步骤:将文本作为字符串加载到内存中。将字符串拆分为词元(如单词和字符)。建立一个词表,将拆分的词元映射到数字索引。将文本转换为数字索引序列,方便模型操作。8.2.1读取数据集本文......
  • 【LeetCode】最小处理时间
    题目你有n颗处理器,每颗处理器都有4个核心。现有n*4个待执行任务,每个核心只执行一个任务。给你一个下标从0开始的整数数组processorTime,表示每颗处理器最早空闲时间。另给你一个下标从0开始的整数数组tasks,表示执行每个任务所需的时间。返回所有任务都执行完......
  • 几种平滑处理方法
    转自:https://www.cnblogs.com/sophia-hxw/p/5687007.html平滑,也可叫滤波,或者合在一起叫平滑滤波,平滑滤波是低频增强的空间域滤波技术。它的目的有两类:一类是模糊;另一类是消除噪音。空间域的平滑滤波一般采用简单平均法进行,就是求邻近像元点的平均亮度值。邻域的大小与平滑的效果......
  • [异常处理]rabbitMQ 消费端异常进入死循环-消费消息时候抛出错误,控制台一直刷
    消费端一直在循环消费消>报错->消费.问题点也能想的来,因为默认是自动应答,异常了相当于是没有应答,然后就一直异常重新抛回队列进行投递.解决方案:第一种方法:对可能发生异常的部分try、catch;只要事先将问题catch住,就证明消费端已经将该问题消费掉,然后该消息就不存在于队列中......
  • java中的异步任务处理和Feature接口
    简介Java并发包提供了一套框架,大大简化了执行异步任务所需要的开发。框架引入了“执行服务”的概念,封装了任务执行的细节,对任务提交者而言,他可以关注任务本身,如提交任务、获取结果、取消任务。而不用关注任务执行的细节。基本接口①Runnable和Callable:表示要执行的任务②Exc......
  • JavaScript实现大文件分片上传处理
    很多时候我们在处理文件上传时,如视频文件,小则几十M,大则1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1、文件过大,超出服务端的请求大小限制;2、请求时间过长,请求超时;3、传输中断,必须重新上传导致前功尽弃这些问题很影响用户的体验感,所以下面介绍一种基于原生JavaScript进......