纯js写的分页表格数据为json串


Posted in Javascript onFebruary 18, 2014

什么也不说了,直接上代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<%@ taglib prefix="s" uri="/struts-tags" %> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<base href="<%=basePath%>"> 
<meta http-equiv="pragma" content="no-cache"> 
<meta http-equiv="cache-control" content="no-cache"> 
<meta http-equiv="expires" content="0"> 
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
<meta http-equiv="description" content="This is my page"> 
<title>分页</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<script type="text/javascript"> 
var tableData = [{"C0":"临夏州_康乐县","C1":190893.39,"C2":24544.65,"AREA_ID":"930013005"},{"C0":"临夏州_永靖县","C1":368900.35,"C2":40592.19,"AREA_ID":"930013006"},{"C0":"兰州市_东岗分局","C1":88.48,"C2":126.4,"AREA_ID":"930013106"},{"C0":"临夏州_临夏县","C1":107337.9,"C2":20612.1,"AREA_ID":"930013008"},{"C0":"临夏州_广河县","C1":69738.07,"C2":34894.44,"AREA_ID":"930013003"},{"C0":"临夏州_和政县","C1":46622.96,"C2":20954.97,"AREA_ID":"930013002"},{"C0":"临夏州_东乡县","C1":96021.84,"C2":16725.63,"AREA_ID":"930013004"},{"C0":"临夏州_临夏市中心","C1":1845311.12,"C2":129478.93,"AREA_ID":"930013001"},{"C0":"天水市_秦州区","C1":0,"C2":0,"AREA_ID":"930013801"},{"C0":"临夏州_积石山","C1":256181.79,"C2":15185.98,"AREA_ID":"930013007"},{"C0":"酒泉_肃州区","C1":264312,"C2":402.6,"AREA_ID":"930013701"}]; 
var columns = [{"cid":"C0","ctext":"区县"},{"cid":"C1","ctext":"客户总收入"},{"cid":"C2","ctext":"当月出账费用"}]; 
/** 
page:页码 
pageSize:每页的记录条数 
此方法除了传入page和pageSize之外,还应知道的有三个参数: 
一、表的全部数据,json串格式,可通过action查询数据库得到。 
二、表头所对应的列的key及名称,也是json串格式 
三、表所对应的id 
注:此处只是适合表头只有一行,且事先写好的情况。您可以根据需要改一下,逻辑思路就是这样,欢迎批评指正。 
*/ 
function splitPage(page,pageSize){ 
var ptable = document.getElementById("page_table"); 
var num = ptable.rows.length;//table.rows返回表格中包含的所有行,此处假设表由表头1行和表体N行组成 
//alert(num); 
//清除tbody 
for(var i=num-1;i>0;i--){ 
ptable.deleteRow(i); 
} 
var totalNums = tableData.length;//总行数 
var totalPage = Math.ceil(totalNums/pageSize);//总页数 
var begin = (page-1)*pageSize;//页起始位置(包括) 
var end = page*pageSize;//页结束位置(不包括) 
end = end>totalNums?totalNums:end; 
//向tbody中写入数据 
var n = 1;//tbody的起始行 
for(var i=begin;i<end;i++){ 
var row = ptable.insertRow(n++); 
var rowData = tableData[i]; 
for(var j=0;j<columns.length;j++){ 
var col = columns[j].cid; 
var cell = row.insertCell(j); 
var cellData = rowData[col]; 
cell.innerHTML = cellData; 
} 
} 
//生成分页工具条 
var pageBar = "第"+page+"页/共"+totalPage+"页"+" "; 
if(page>1){ 
pageBar += "<a href=\"javascript:splitPage("+1+","+pageSize+");\">首页</a> "; 
}else{ 
pageBar += "首页 "; 
} 
if(page>1){ 
pageBar += "<a href=\"javascript:splitPage("+(page-1)+","+pageSize+");\">上一页</a> "; 
}else{ 
pageBar += "上一页 "; 
} 
if(page<totalPage){ 
pageBar += "<a href=\"javascript:splitPage("+(page+1)+","+pageSize+");\">下一页</a> "; 
}else{ 
pageBar += "下一页 "; 
} 
if(page<totalPage){ 
pageBar += "<a href=\"javascript:splitPage("+(totalPage)+","+pageSize+");\">尾页</a> "; 
}else{ 
pageBar += "尾页 "; 
} 
document.getElementById("page_bar").innerHTML = pageBar; 
} 
</script> 
</head> <body onload="splitPage(1,3);"> 
<table id="page_table"> 
<thead> 
<tr> 
<th>h1</th> 
<th>h2</th> 
<th>h3</th> 
</tr> 
</thead> 
<tbody> 
<tr> 
<td>111</td> 
<td>222</td> 
<td>333</td> 
</tr> 
</tbody> 
</table> 
<div id="page_bar"></div> 
</body> 
</html>
Javascript 相关文章推荐
JS宝典学习笔记(下)
Jan 10 Javascript
js跨域问题浅析及解决方法优缺点对比
Nov 08 Javascript
jQuery实用技巧必备(下)
Nov 03 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
Oct 14 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
Jan 06 Javascript
AngularJS执行流程详解
Feb 17 Javascript
无法获取隐藏元素宽度和高度的解决方案
Mar 07 Javascript
js简易版购物车功能
Jun 17 Javascript
vue组件jsx语法的具体使用
May 21 Javascript
vue-cli3全面配置详解
Nov 14 Javascript
微信小程序整个页面的自动适应布局的实现
Jul 12 Javascript
微信小程序实现轮播图指示器
Jun 25 Javascript
倒记时60刷新网页的js代码
Feb 18 #Javascript
JS替换文本域内的回车示例
Feb 18 #Javascript
javascript得到当前页的来路即前一页地址的方法
Feb 18 #Javascript
通过正则表达式实现表单验证是否为中文
Feb 18 #Javascript
如何将网页表格内容导入excel
Feb 18 #Javascript
js charAt的使用示例
Feb 18 #Javascript
jQuery 回车事件enter使用示例
Feb 18 #Javascript
You might like
Laravel 5框架学习之路由、控制器和视图简介
2015/04/07 PHP
用PHP代码给图片加水印
2015/07/01 PHP
php图片添加文字水印实现代码
2016/03/15 PHP
php打包压缩文件之ZipArchive方法用法分析
2016/04/30 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
PHP生成随机密码4种方法及性能对比
2020/12/11 PHP
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
jquery自定义函数的多种方法
2014/01/09 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
jQuery获取radio选中项的值实例
2016/06/18 Javascript
jQuery simpleModal插件的使用介绍
2016/08/30 Javascript
深入理解Node.js的HTTP模块
2016/10/12 Javascript
Angular2使用jQuery的方法教程
2017/05/28 jQuery
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
使用jQuery实现简单的tab框实例
2017/08/22 jQuery
js 概率计算(简单版)
2017/09/12 Javascript
微信小程序实现页面浮动导航
2019/01/28 Javascript
20道JS原理题助你面试一臂之力(必看)
2019/07/22 Javascript
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
2020/09/22 Javascript
[06:45]2018DOTA2亚洲邀请赛 4.5 SOLO赛 Sccc vs Maybe
2018/04/06 DOTA
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
2018/06/11 Python
对于Python深浅拷贝的理解
2019/07/29 Python
python3 logging日志封装实例
2020/04/08 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
英国高级百货公司:Harvey Nichols
2017/01/29 全球购物
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
高一地理教学反思
2014/01/18 职场文书
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
我的中国梦演讲稿300字
2014/08/19 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
教师个人年终总结
2015/02/11 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书
创业计划书之废品回收
2019/09/26 职场文书
MySQL sql模式设置引起的问题
2022/05/15 MySQL