js分页实例

案例1

1.js_pageusers.html

<!DOCTYPE html>

<html>
<head>
<title>js_pageusers.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="pageuser.js"></script>
</head> <body>
<div id="one" align="center">
<div>
用户名: <input type="text" id="userName" />
性别: <input type="text" id="userSex" /> 职业: <input type="text" id="userRole" /> <br /> <br />
<input type="button" id="addUsers" value="添加用户" />
<input type="button" id="updateUsers" value="更新用户" />
</div>
<br /> <br />
<div>
<table border="1px" cellpadding="" cellspacing="" width="500px;">
<thead>
<th>用户名</th>
<th>性别</th>
<th>职业</th>
</thead>
<tbody id="showUsers"></tbody>
</table> <div>
<input type="button" id="firstPage" value="首页" /> <input
type="button" id="backPage" value="上一页" /> <input type="button"
id="nextPage" value="下一页" /> <input type="button" id="lastPage"
value="末页" /> <span id="msg"></span>
</div>
</div>
</div>
</body> </html>

2.pageuser.js

function setPage(){
var pagesize = ;//每页显示的记录数
var recondsize = ;//总记录数
var countpage = ;//总页数
var nowpage= ;
var users = new Array();//存放所有的记录 var start = ; //保存当前页开始的记录
var end = ;//保存当前页结束的记录 var domUserName = $("userName");
var domUserSex = $("userSex");
var domUserRole = $("userRole"); var domshowUsers = $("showUsers");
var addBtn = $("addUsers"); //为按钮注册事件
addBtn.onclick = function() {
//创建user对象
var user = new User(domUserName.value, domUserSex.value,
domUserRole.value);
//把user对象存放数组中
users.push(user);
recondsize = users.length; //得出总记录数
//计算出总页数
countpage = recondsize % pagesize == ? recondsize / pagesize : Math
.ceil(recondsize / pagesize); if (recondsize > pagesize) { //当总记录大于pagezie 思路 从后往前数3个数
start = recondsize-pagesize;
end=recondsize;
}else{ // pagesize start =1;
start=;
end=recondsize; //end=实际的个数 就是 recondsize
} //调用显示user的方法
showUser(users,start,end,recondsize,countpage,domshowUsers); }
//获取分页相关的按钮
var firstPage = $("firstPage");
var backPage = $("backPage");
var nextPage = $("nextPage");
var lastPage = $("lastPage"); firstPage.onclick = function() {
nowpage = ; if (recondsize<= pagesize && recondsize > ) {
start = ;
end = recondsize;
}else{
start=;
end=pagesize;
} showUser(users,start,end,recondsize,countpage,domshowUsers); } backPage.onclick = function() {
nowpage = nowpage-;//重新赋值 if(nowpage<=){
nowpage=;
} if (recondsize <= pagesize && recondsize > ) {
start = ;
end = recondsize;
}else{
start=(nowpage-)*pagesize;
end = (nowpage-)*pagesize+pagesize;
} showUser(users,start,end,recondsize,countpage,domshowUsers); } nextPage.onclick = function() {
nowpage = nowpage+;//重新赋值 if(nowpage>=countpage){
nowpage=countpage;
} if (recondsize <= pagesize && recondsize > ) {
start = ;
end = recondsize;
}else{
start=(nowpage-)*pagesize;
if((nowpage-)*pagesize+pagesize>=recondsize){
end = recondsize;
}else{
end =(nowpage-)*pagesize+pagesize;
}
}
showUser(users,start,end,recondsize,countpage,domshowUsers); }
lastPage.onclick = function() {
nowpage = countpage;//重新赋值 if (recondsize <= pagesize && recondsize > ) {
start = ;
end = recondsize;
}else{
start=(nowpage-)*pagesize;
end = recondsize;
}
showUser(users,start,end,recondsize,countpage,domshowUsers); } } //创建一个Function函数 函数是保存User对象数据的
function User(name, sex, role) {
this.name = name;
this.sex = sex;
this.role = role;
} function $(id) {
return document.getElementById(id);
} function showUser(users,start,end,recondsize,countpage,domshowUsers){ //清空数据
for ( var jj = ; jj < domshowUsers.childNodes.length;) {
domshowUsers.removeChild(domshowUsers.childNodes[jj]);
} //for循环添加的
for(var i=start;i<end;i++){
var user = users[i];//考虑
//创建一行
var tr = document.createElement("tr");
//创建列
var td1 = document.createElement("td");
//创建文本节点
var td1TextNode = document.createTextNode(user.name);
//文本节点添加到td中
td1.appendChild(td1TextNode); //创建列
var td2 = document.createElement("td");
//创建文本节点
var td2TextNode = document.createTextNode(user.sex);
//文本节点添加到td中
td2.appendChild(td2TextNode); //创建列
var td3 = document.createElement("td");
//创建文本节点
var td3TextNode = document.createTextNode(user.role);
//文本节点添加到td中
td3.appendChild(td3TextNode); //把列添加到行中
tr.appendChild(td1);
tr.appendChild(td2);
tr.appendChild(td3); //把行添加到tbody中
if(domshowUsers.hasChildNodes()){
domshowUsers.insertBefore(tr,domshowUsers.firstChild);//再最后一个数据之前添加数据
}else{
domshowUsers.appendChild(tr);//添加到末尾
}
}
document.getElementById("msg").innerHTML = "总共:{" + recondsize
+ "}条记录,共{" + countpage + "}页";
}

案例2

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>js分页技术</title>
</head>
<body>
<table width="" border="" cellpadding="" cellspacing=""
bgcolor="#999999">
<tbody id="table2">
<tr>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
<td bgcolor="#FFFFFF"> </td>
</tr>
</tbody>
</table>
<span id="spanFirst">第一页</span>
<span id="spanPre">上一页</span>
<span id="spanNext">下一页</span>
<span id="spanLast">最后一页</span> 第
<span id="spanPageNum"></span>页/共
<span id="spanTotalPage"></span>页
</body>
</html>
<script>
var theTable = document.getElementById("table2");
var totalPage = document.getElementById("spanTotalPage");
var pageNum = document.getElementById("spanPageNum");
var spanPre = document.getElementById("spanPre");
var spanNext = document.getElementById("spanNext");
var spanFirst = document.getElementById("spanFirst");
var spanLast = document.getElementById("spanLast");
var numberRowsInTable = theTable.rows.length;
var pageSize = ;
var page = ;
//下一页
function next() {
hideTable();
currentRow = pageSize * page;
maxRow = currentRow + pageSize;
if (maxRow > numberRowsInTable)
maxRow = numberRowsInTable;
for ( var i = currentRow; i < maxRow; i++) {
theTable.rows[i].style.display = '';//currentRow ~ maxRow 内显示出来
}
page++;
if (maxRow == numberRowsInTable) {
nextText();
lastText();
}
showPage();
preLink();
firstLink();
}
//上一页
function pre() {
hideTable();
page--;
currentRow = pageSize * page;
maxRow = currentRow - pageSize;
if (currentRow > numberRowsInTable)
currentRow = numberRowsInTable;
for ( var i = maxRow; i < currentRow; i++) {
theTable.rows[i].style.display = '';
}
if (maxRow == ) {
preText();
firstText();
}
showPage();
nextLink();
lastLink();
}
//第一页
function first() {
hideTable();
page = ;
for ( var i = ; i < pageSize; i++) {
theTable.rows[i].style.display = '';
}
showPage();
preText();
nextLink();
lastLink();
}
//最后一页
function last() {
hideTable();
page = pageCount();
currentRow = pageSize * (page - );
for ( var i = currentRow; i < numberRowsInTable; i++) {
theTable.rows[i].style.display = '';
}
showPage();
preLink();
nextText();
firstLink();
}
function hideTable() {
for ( var i = ; i < numberRowsInTable; i++) {
theTable.rows[i].style.display = 'none';
}
}
function showPage() {
pageNum.innerHTML = page;
}
//总共页数
function pageCount() {
var count = ;
if (numberRowsInTable % pageSize != )
count = ;
return parseInt(numberRowsInTable / pageSize) + count;
} //显示链接
function preLink() {
spanPre.innerHTML = "<a href='javascript:pre();'>上一页</a>";
}
function preText() {
spanPre.innerHTML = "上一页";
}
function nextLink() {
spanNext.innerHTML = "<a href='javascript:next();'>下一页</a>";
}
function nextText() {
spanNext.innerHTML = "下一页";
}
function firstLink() {
spanFirst.innerHTML = "<a href='javascript:first();'>第一页</a>";
}
function firstText() {
spanFirst.innerHTML = "第一页";
}
function lastLink() {
spanLast.innerHTML = "<a href='javascript:last();'>最后一页</a>";
}
function lastText() {
spanLast.innerHTML = "最后一页";
}
//隐藏表格
function hide() {
for ( var i = pageSize; i < numberRowsInTable; i++) {
theTable.rows[i].style.display = 'none';
}
totalPage.innerHTML = pageCount();
pageNum.innerHTML = '';
nextLink();
lastLink();
}
hide();
</script>

js分页实例的更多相关文章

  1. angular.js分页代码的实例

    对于大多数web应用来说显示项目列表是一种很常见的任务.通常情况下,我们的数据会比较多,无法很好地显示在单个页面中.在这种情况下,我们需要把数据以页的方式来展示,同时带有转到上一页和下一页的功能.现在 ...

  2. 一款基于Bootstrap的js分页插件bootstrap-paginator使用实例

    Bootstrap Paginator是一款基于Bootstrap的js分页插件,功能很丰富.它提供了一系列的参数用来支持用户的定制,提供了公共的方法可随时获得插件状态的改变,以及事件来监听用户的动作 ...

  3. Jsp分页实例---真分页

    网页的分页功能的实现比较简单,实现方法也多种多样. 今天总结一个简单的Jsp真分页实例. 首先,提到分页就要先明确一个概念,何为真分页何谓假分页. 假分页:一次性从数据库读出表的所有数据一次性的返回给 ...

  4. Thinkphp+Ajax带关键词搜索列表无刷新分页实例

    Thinkphp+Ajax带关键词搜索列表无刷新分页实例,两个查询条件,分页和搜索关键字,懂的朋友还可以添加其他分页参数. 搜索#keyword和加载内容区域#ajax_lists <input ...

  5. java:(json,ajax,path,Oracle的分页实例,Filter拦截器)

    1.json: <%@ page language="java" import="java.util.*" pageEncoding="UTF- ...

  6. js分页小结

     今天解决了JS分页的问题1 页码 给每页的内容套一个相同的类名 通过选择器加上.length或者.size() 来获得总页数2当前页的页码可以使用each(function(index,DOMsss ...

  7. 自己封装的JS分页功能[用于搭配后台使用]

    * 2016.7.03 修复bug,优化代码逻辑 * 2016.5.25 修复如果找不到目标对象的错误抛出. * 2016.5.11 修复当实际页数(pageNumber)小于生成的页码间隔数时的bu ...

  8. RDIFramework.NET 中多表关联查询分页实例

    RDIFramework.NET 中多表关联查询分页实例 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.Net框架部署方案.该框架以SOA范式作为 ...

  9. jsp、js分页功能的简单总结

    一.概述 首先,我们要明确为何需要分页技术,主要原因有以下: 1.分页可以提高客户体验度,适当地选择合适的数据条数,让页面显得更有条理,使得用户体验感良好,避免过多数据的冗余. 2.提高性能的需要.分 ...

随机推荐

  1. 2.python数据结构的性能分析

    一.引言 - 现在大家对 大O 算法和不同函数之间的差异有了了解.本节的目标是告诉你 Python 列表和字典操作的 大O 性能.然后我们将做一些基于时间的实验来说明每个数据结构的花销和使用这些数据结 ...

  2. ansible(一)

    Ansible简介 Ansible:Ansible的核心程序Host Lnventory:记录了每一个由Ansible管理的主机信息,信息包括ssh端口,root帐号密码,ip地址等等.可以通过fil ...

  3. mapreduce设置setMapOutputKeyClass与setMapOutputValueClass原因

    一般的mapreduce的wordcount程序如下: public class WcMapper extends Mapper<LongWritable, Text, Text, LongWr ...

  4. 【转】网段,子网掩码,网络标识,IP划分

    网段指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)直接通讯的那一部分.就是从一个IP到另一个IP 好比 从192.168.0.1到192.168.255.255这之间就是一个网段 ...

  5. 服务发现系统etcd之安装和使用

    一.概述 etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现.etcd是由CoreOS开发并维护的,灵感来自于 ZooKeeper 和 Doozer,它使用Go语言编写,并通过Raft一致 ...

  6. jqgrid 基础应用

    jqgrid 是一个在jquery基础上做的一个表格插件,以ajax的方式和服务器端通信. 一个jqgrid的基础示例(基础参数说明)如下: $("#jqGrid").jqGrid ...

  7. C# 自定义类型转换

    1.显式转换和隐式转换: ; long b=a; // 从int到long的隐式转换 int c=(int) b; // 从long到int是显式转换 ------------------------ ...

  8. 关于C#中async/await中的异常处理(下)-(转载)

    上一篇文章里我们讨论了某些async/await的用法中出现遗漏异常的情况,并且谈到该如何使用WhenAll辅助方法来避免这种情况.WhenAll辅助方法将会汇总一系列的任务对象,一旦其中某个出错,则 ...

  9. Django Rest Framework源码剖析(二)-----权限

    一.简介 在上一篇博客中已经介绍了django rest framework 对于认证的源码流程,以及实现过程,当用户经过认证之后下一步就是涉及到权限的问题.比如订单的业务只能VIP才能查看,所以这时 ...

  10. 20155323刘威良《网络对抗》Exp3 免杀原理与实践

    20155323刘威良<网络对抗>Exp3 免杀原理与实践 实践内容 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellco ...