angularjs表格分页功能详解


Posted in Javascript onJanuary 21, 2016

接上一次,这次主要介绍表格分页功能,由于项目需要这个案例是关于前端分页的方式,现在很少会这么用了,但如有需要可以参考其中的思路

html:

1.通过UL来展示页标,其中每个页标的li是通过异步加载从获取到不同的表格数据来动态生成的。

<div class="pagination">
      <ul style="float:right">
        <li id="previous"><a href="">上一页</a></li>
        <li><!--用于页标的显示 -->
          <ul id="page_num_all">
          </ul>
        </li>
        <li id="next"><a href="" style="border:1px solid #ddd;float:right">下一页</a></li>
      </ul>
      <span>
        当前为第<span class="num" id="current_page"></span>页,总共<span class="num" id="page_all"></span>页
      </span>
    </div>

js:

1.首先需要设置每页想要显示的条数,通过选取页面元素来确定本次生成的总条数,以及当前所在的页数(为跳转做准备)

2.如果总页数大于生成的当前页数,则继续生成下一页直到完毕后,将角标添加到页面中

3.将所有的表格数据隐藏,只显示一开始设置的第一页中的5条

4.跳转页面功能,tab_page()通过传入的index(页数)*显示的条数来确定截取tr的开始位置和结束位置,然后将所有的tr隐藏,只显示该范围内的tr(display:“”);

5.上一页下一页和跳转功能,获取当前页的数字,注意判断是否为第一或最后一页,将其作为index传入跳转功能中即可

function table_page(){
      var show_page=5;//每页显示的条数
      var page_all=$("#page").children().size();//总条数
      var current_page=1;//当前页
//    console.log(page_all);
      var page_num=Math.ceil(page_all/show_page);//总页数
      var current_num=0;//用于生成页标的计数器
      var li="";//页标元素
      while(page_num>current_num){//循环生成页标元素
        li+='<li class="page_num"><a href="javasctip:(0)">'+(current_num+1)+'</a></li>';
        current_num++;
      }
      $("#page_num_all").html(li);//添加页标到页面
      $('#page tr').css('display', 'none');//设置隐藏
      $('#page tr').slice(0, show_page).css('display', '');//设置显示
      $("#current_page").html(" "+current_page+" ");//显示当前页
      $("#page_all").html(" "+page_num+" ");//显示总页数
      $("#previous").click(function(){//上一页
        var new_page=parseInt($("#current_page").text())-1;
        if(new_page>0){
          $("#current_page").html(" "+new_page+" ");
          tab_page(new_page);
        }
      });
      $("#next").click(function(){//下一页
        var new_page=parseInt($("#current_page").text())+1;//当前页标
        if(new_page<=page_num){//判断是否为最后或第一页
          $("#current_page").html(" "+new_page+" ");
          tab_page(new_page);
        }
      });
      $(".page_num").click(function(){//页标跳转
        var new_page=parseInt($(this).text());
        tab_page(new_page);
      });
      function tab_page(index){//切换对应页标的页面
        var start=(index-1)*show_page;//开始截取的页标
        var end=start+show_page;//截取个数
        $('#page').children().css('display', 'none').slice(start, end).css('display', '');
        current_page=index;
        $("#current_page").html(" "+current_page+" ");
      }
    }
table_page();

以上就是表格的前端分页方法和页数,页标等跳转方式的方法,请结合第一章中的数据测试。

Javascript 相关文章推荐
JS高级拖动技术 setCapture,releaseCapture
Jul 31 Javascript
php对mongodb的扩展(小试牛刀)
Nov 11 Javascript
gridview生成时如何去掉style属性中的border-collapse
Sep 30 Javascript
jQuery类选择器用法实例
Dec 23 Javascript
webpack中引用jquery的简单实现
Jun 08 Javascript
javascript弹出带文字信息的提示框效果
Jul 19 Javascript
JS焦点图,JS 多个页面放多个焦点图的实例
Dec 08 Javascript
javascript获取以及设置光标位置
Feb 16 Javascript
jQuery插件HighCharts绘制2D半圆环图效果示例【附demo源码下载】
Mar 09 Javascript
详解Vue.js 2.0 如何使用axios
Apr 21 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
Nov 08 Javascript
JS组件库AlloyTouch实现图片轮播过程解析
May 29 Javascript
使用angularjs创建简单表格
Jan 21 #Javascript
Jquery中巧用Ajax的beforeSend方法
Jan 20 #Javascript
Javascript中神奇的this
Jan 20 #Javascript
javascript实现图片轮播效果
Jan 20 #Javascript
JS获取鼠标坐标位置实例分析
Jan 20 #Javascript
属于你的jQuery提示框(Tip)插件
Jan 20 #Javascript
学习JavaScript设计模式之模板方法模式
Jan 20 #Javascript
You might like
php $_SERVER windows系统与linux系统下的区别说明
2014/02/14 PHP
变量在 PHP7 内部的实现(二)
2015/12/21 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
2018/01/15 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
如何判断图片地址是否失效
2007/02/02 Javascript
Stop SQL Server
2007/06/21 Javascript
select组合框option的捕捉实例代码
2008/09/30 Javascript
防止动态加载JavaScript引起的内存泄漏问题
2009/10/08 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
2014/12/29 Javascript
javascript中利用柯里化函数实现bind方法
2016/04/29 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
微信小程序实现倒计时补零功能
2018/07/09 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
JS如何在不同平台实现多语言方式
2020/07/16 Javascript
Ant Design Pro 之 ProTable使用操作
2020/10/31 Javascript
Vue+Element-U实现分页显示效果
2020/11/15 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
[01:03:59]2018DOTA2亚洲邀请赛3月30日 小组赛B组VGJ.T VS Secret
2018/03/31 DOTA
python和C语言混合编程实例
2014/06/04 Python
python实现将html表格转换成CSV文件的方法
2015/06/28 Python
Python学习教程之常用的内置函数大全
2017/07/14 Python
pandas将DataFrame的列变成行索引的方法
2018/04/10 Python
Python中几种属性访问的区别与用法详解
2018/10/10 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
2019/06/19 Python
什么是python的列表推导式
2020/05/26 Python
Python3读取和写入excel表格数据的示例代码
2020/06/09 Python
python七种方法判断字符串是否包含子串
2020/08/18 Python
英国历史最悠久的DJ设备供应商:DJ Finance、DJ Warehouse、The DJ Shop
2019/09/04 全球购物
女方婚礼新郎答谢词
2014/01/11 职场文书
社会公德演讲稿
2014/05/20 职场文书
组工干部演讲稿
2014/09/02 职场文书
2016大学生暑期社会实践心得体会
2016/01/14 职场文书
Anaconda配置各版本Pytorch的实现
2021/08/07 Python