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(jquery)中获得文本框焦点和失去焦点的方法
Dec 04 Javascript
js取消单选按钮选中并判断对象是否为空
Nov 14 Javascript
js获取表格的行数和列数的方法
Oct 23 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
Jan 26 Javascript
js+html5操作sqlite数据库的方法
Feb 02 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
May 25 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
Apr 11 Javascript
前端开发不得不知的10个最佳ES6特性
Aug 30 Javascript
使用vue-router设置每个页面的title方法
Feb 11 Javascript
vue-cli项目中使用Mockjs详解
May 14 Javascript
layui关闭层级、简单监听的实例
Sep 06 Javascript
vue中get请求如何传递数组参数的方法示例
Nov 08 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 验证图片生成函数
2009/05/21 PHP
PHP 防恶意刷新实现代码
2010/05/16 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
2020/12/15 PHP
Javascript与vbscript数据共享
2007/01/09 Javascript
JavaScript Konami Code 实现代码
2009/07/29 Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
2013/04/02 Javascript
JS实现的仿QQ空间图片弹出效果代码
2016/02/23 Javascript
基于js中的原型、继承的一些想法
2016/08/10 Javascript
node.js实现快速截图
2016/08/27 Javascript
利用yarn实现一个webpack+react种子
2016/10/25 Javascript
AngularJS动态加载模块和依赖的方法分析
2016/11/08 Javascript
Async Validator 异步验证使用说明
2017/07/03 Javascript
Nodejs中使用phantom将html转为pdf或图片格式的方法
2017/09/18 NodeJs
十分钟带你快速了解React16新特性
2017/11/10 Javascript
vue-router 路由传参用法实例分析
2020/03/06 Javascript
[08:38]DOTA2-DPC中国联赛 正赛 VG vs Elephant 选手采访
2021/03/11 DOTA
Python入门篇之函数
2014/10/20 Python
Python多进程机制实例详解
2015/07/02 Python
python去除文件中重复的行实例
2018/06/29 Python
python组合无重复三位数的实例
2018/11/13 Python
python3实现网络爬虫之BeautifulSoup使用详解
2018/12/19 Python
Pytorch反向求导更新网络参数的方法
2019/08/17 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
python中sys模块是做什么用的
2020/08/16 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
boostrap modal 闪现问题的解决方法
2020/09/01 HTML / CSS
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
PHP如何防止SQL注入
2014/05/03 面试题
党员群众路线自我剖析材料
2014/10/06 职场文书
教师个人查摆剖析材料
2014/10/14 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
放假通知
2015/04/14 职场文书
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL
如何用六步教会你使用python爬虫爬取数据
2022/04/06 Python
MySQL新手入门进阶语句汇总
2022/09/23 MySQL