如何用angularjs制作一个完整的表格之二__表格分页功能

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

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("&nbsp;"+current_page+"&nbsp;");//显示当前页
            $("#page_all").html("&nbsp;"+page_num+"&nbsp;");//显示总页数
            $("#previous").click(function(){//上一页
                var new_page=parseInt($("#current_page").text())-1;
                if(new_page>0){
                    $("#current_page").html("&nbsp;"+new_page+"&nbsp;");
                    tab_page(new_page);
                }
            });
            $("#next").click(function(){//下一页
                var new_page=parseInt($("#current_page").text())+1;//当前页标
                if(new_page<=page_num){//判断是否为最后或第一页
                    $("#current_page").html("&nbsp;"+new_page+"&nbsp;");
                    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("&nbsp;"+current_page+"&nbsp;");
            }
        }
table_page();

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

时间: 2024-08-03 07:03:14

如何用angularjs制作一个完整的表格之二__表格分页功能的相关文章

如何用angularjs制作一个完整的表格之一__创建简单表格

初步接手人生的第一个项目,需要用angularjs制作表格和实现各种功能,因此遇到了各种问题和以前不熟悉的知识点,在此记录下来,以供大家学习交流,解决方式可能并不完善或符合规范,如果大家有更好的方式欢迎指出,由于这个表格功能的制作是一点点添加上去的,因此我也分成几个部分介绍,日后如增加了新的功能也会不时更新的 首先,表格采用的是BootStrap样式编辑的,主要使用的是angularjs,为了方便也有jQuery的方法,在测试时需自行引入bootstrap,angularjs和jq的文件. 正文

如何用angularjs制作一个完整的表格之五__完整的案例

由于本人也是边学边写,因此整理的比较乱,下面放出我例子的完整代码,方便大家交流测试,如有问题欢迎评论 首先,表格采用的是BootStrap样式编辑的,主要使用的是angularjs,为了方便也有jQuery的方法,在测试时需自行引入bootstrap,angularjs和jq的文件. 整体代码预览: HTML: <!DOCTYPE html> <html lang="en" ng-app="myModule"> <head> //

如何用angularjs制作一个完整的表格之四__自定义ng-model标签的属性使其支持input之外的html元素

有的时候我们需要为非input类型的元素添加ng-model来实现双向的数据绑定,从而减少冗余代码,那么可以尝试一下的方式 例如:我页面中使用了contenteditable这个属性来实现用户可直接编译的div元素 html: <style> .text{ margin:0 auto; width:100px; height:50px; border:1px solid red; } </style> </head> <body> <div ng-co

php怎么做网站?如何用PHP开发一个完整的网站?

1.PHPer应具备的知识 (1)PHP知识: 熟练掌握基础函数,PHP语句(条件.循环),数组(排序.读取),函数(内部 构造),运算(数学 逻辑),面向对象(继承 接口 封装 多态静态属性)等. 了解Cookie或者Session一种机制 了解一种模板操作机制和使用 手头收藏一些好的常用类或方法,能提高我们的开发的速度.如:分页.上传.字符过滤.数据库操作.生成HTML.文件操作等. (2)HTML知识 (3)JavaScript事件处理 (4)数据库知识:SQL语句"增删改查"

NSIS制作了一个完整的演示产品安装程序

NSIS制作了一个完整的演示产品安装程序,实现功能概要如下:1.安装路径的选择2.浏览器的选择3.桌面数据库的自动安装及启动 4.数据库实例及演示数据的自动恢复 5.应用服务器的自动安装 6.JDK的安装及环境变量的设置 7.应用程序的自动安装 8.数据库实例端口的设置(要考虑用户机器上可能存在别的sqlserver数据库实例) 9.windows服务中的自动启动项的安装 10.启动应用 11.readme的打开 12.用浏览器打开应用的登录界面 13.在安装过程中切换公司或应用的介绍信息: 1

用JS制作一个信息管理平台完整版

  前  言 JRedu 在之前的文章中,介绍了如何用JS制作一个实用的信息管理平台. 但是那样的平台功能过于简陋了,我们今天来继续完善一下. 首先我们回顾一下之前的内容.   1.JSON的基础知识 1.1  什么是JSON JSON是数据交互中,最常用的一种数据格式. 由于各种语言的语法都不相同,在传递数据时,可以将自己语言中的数组.对象等转换为JSON字符串. 传递之后,可以将JSON字符串,再解析为JSON对象. JSON对象的使用与JS中的对象基本相同,唯一需要区别的是,JSON中的键

使用CocosSharp制作一个游戏 - CocosSharp中文教程

注:本教程翻译自官方<Walkthrough - Building a game with CocosSharp>,官方教程有很多地方说的不够详细,或者代码不全,导致无法继续,本人在看了GoneBananas项目代码后,对本教程进行了部分修改,但当前只涉及Android方面,iOS因没有环境验证代码,暂未修改. 本人博客地址:http://fengyu.name 原文链接:http://fengyu.name/?cat=game&id=295 相关资源: 离线PDF文档:Downloa

一个完整的项目中,需要的基本gulp

一个完整的项目需要使用gulp的多种功能,包括—— (1)加载各种需要的插件 var concat=require('gulp'); var clean=require(''gulp); 等等.需要的插件放在指定的module文件夹下面,然后再修改文件中修改. (2)启动任务和完成部署任务 我们想要在文件进行操作之前,首先将文件的环境弄好,例如,想把a放在一个目录下,但是这个目录下面有着很多的不需要的文件,所以我们首先需要将这些文件删除—— gulp.task('cleanTask',funct

如何用C#快速制作一个播放器

如何用VS快速制作一个播放器 本程序环境: 系统windows7 工具vs2012 语言c# 具体步骤如下: 1.  添加windowsmedia palyer组件 打开视图->工具箱 右键单击常规->选择项->COM组件->Windows Media Palyer 如图所示 新建winForm项目,打开form就可以看见工具箱常规下面有Windows Media Palyer组件了,如下图所示: 2.  在Form中添加WindowsMedia Palyer.OpenFileDi