基于Jquery+Ajax+Json实现分页显示附效果图
作者:whsnow 发布时间:2024-05-21 10:12:27
标签:Ajax,Json,分页
1.后台action产生json数据。
List blackList = blackService.getBlackInfoList(mobileNum, gatewayid, startDate, endDate);
int totalRows = blackList.size();
StringBuffer sb = new StringBuffer();
sb.append("{\"totalCount\":\""+totalRows+"\",");
sb.append("\"jsonRoot\":[");
for (int i=0;i<blackList.size();i++) {
LBlack blackInfo = (LBlack)blackList.get(i);
sb.append("{\"id\":\""+ blackInfo.getId());
sb.append("\",");
sb.append("\"mobile\":\""+ blackInfo.getMobile());
sb.append("\",");
sb.append("\"province\":\""+ blackInfo.getProvince());
sb.append("\",");
sb.append("\"gateway\":\""+ blackInfo.getGateway());
sb.append("\",");
sb.append("\"insertTime\":\""+ blackInfo.getInsertTime());
sb.append("\",");
sb.append("\"remark\":\""+ blackInfo.getRemark());
sb.append("\"");
sb.append("},");
}
sb.deleteCharAt(sb.lastIndexOf(",")); // 删去最后一个逗号
sb.append("]}");
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/plain");
response.getWriter().print(sb);
2.struts.xml相关配置
<action name="blackList" class="blackAction" method="blackList">
<!--plaintext用于显示页面原始代码的结果类型-->
<result type="plainText">
<param name="charSet">UTF-8</param>
<param name="location">/WEB-INF/jsp/manage/black.jsp</param>
</result>
</action>
3.js获取json数据分页显示
function getJSONData(pn) {
// alert(pn);
$.getJSON("blackList.ce", function(data) {
var totalCount = data.totalCount; // 总记录数
var pageSize = 10; // 每页显示几条记录
var pageTotal = Math.ceil(totalCount / pageSize); // 总页数
var startPage = pageSize * (pn - 1);
var endPage = startPage + pageSize - 1;
var $ul = $("#json-list");
$ul.empty();
for (var i = 0; i < pageSize; i++) {
$ul.append('<li class="li-tag"></li>');
}
var dataRoot = data.jsonRoot;
if (pageTotal == 1) { // 当只有一页时
for (var j = 0; j < totalCount; j++) {
$(".li-tag").eq(j).append("<span class='col1'><input type='checkbox' value='"+parseInt(j + 1)+"'/></span>")
.append("<span class='col2'>" + parseInt(j + 1)
+ "</span>").append("<span class='col3'>" + dataRoot[j].mobile
+ "</span>").append("<span class='col4'>" + dataRoot[j].province
+ "</span>").append("<span class='col5'>" + dataRoot[j].gateway
+ "</span>").append("<span class='col6'>" + dataRoot[j].insertTime
+ "</span>").append("<span class='col7'>" + dataRoot[j].remark
+ "</span>")
}
} else {
for (var j = startPage, k = 0; j < endPage, k < pageSize; j++, k++) {
if( j == totalCount){
break; // 当遍历到最后一条记录时,跳出循环
}
$(".li-tag").eq(k).append("<span class='col1'><input type='checkbox' value='"+parseInt(j + 1)+"'/></span>")
.append("<span class='col2'>" + parseInt(j + 1)
+ "</span>").append("<span class='col3'>" + dataRoot[j].mobile
+ "</span>").append("<span class='col4'>" + dataRoot[j].province
+ "</span>").append("<span class='col5'>" + dataRoot[j].gateway
+ "</span>").append("<span class='col6'>" + dataRoot[j].insertTime
+ "</span>").append("<span class='col7'>" + dataRoot[j].remark
+ "</span>")
}
}
$(".page-count").text(pageTotal);
})
}
function getPage() {
$.getJSON("blackList.ce", function(data) {
pn = 1;
var totalCount = data.totalCount; // 总记录数
var pageSize = 10; // 每页显示几条记录
var pageTotal = Math.ceil(totalCount / pageSize); // 总页数
$("#next").click(function() {
if (pn == pageTotal) {
alert("后面没有了");
pn = pageTotal;
} else {
pn++;
gotoPage(pn);
}
});
$("#prev").click(function() {
if (pn == 1) {
alert("前面没有了");
pn = 1;
} else {
pn--;
gotoPage(pn);
}
})
$("#firstPage").click(function() {
pn = 1;
gotoPage(pn);
});
$("#lastPage").click(function() {
pn = pageTotal;
gotoPage(pn);
});
$("#page-jump").click(function(){
if($(".page-num").val() <= pageTotal && $(".page-num").val() != ''){
pn = $(".page-num").val();
gotoPage(pn);
}else{
alert("您输入的页码有误!");
$(".page-num").val('').focus();
}
})
$("#firstPage").trigger("click");
})
}
function gotoPage(pn) {
// alert(pn);
$(".current-page").text(pn);
getJSONData(pn)
}
$(function() {
getPage();
})
0
投稿
猜你喜欢
- Python操作Mysql最近在学习python,这种脚本语言毫无疑问的会跟数据库产生关联,因此这里介绍一下如何使用python操作mysq
- 本文实例讲述了wxpython中Textctrl回车事件无效的解决方法。分享给大家供大家参考,具体如下:今天使用wxptyhon的Textc
- 前言:文章里用的Python环境是Anaconda3 2019.7这里测试的程序是找出所有1000以内的勾股数。a∈[1,
- mysql常用导出数据命令:1.mysql导出整个数据库 mysqldump -hhostname -uusername -pp
- 1、截取GB2312字符用的函数 PHP代码 <?php //截取中文字符串 function mysubstr($str, $sta
- 爬虫具有域名切换、信息收集以及信息存储功能。这里讲述如何构建基础的爬虫架构。1、urllib库:包含从网络请求数据、处理cookie、改变请
- 偶第一次发主题, 这个是在一个项目中的做...写的一般般, 有什么bug之类的是在所难免, 望见谅功能说明:1. 即时控制用户输入2. 将输
- cron是什么cron的意思就是:计划任务,说白了就是定时任务。我和系统约个时间,你在几点几分几秒或者每隔几分钟跑一个任务(job),就那么
- 问题:过滤用户输入中前后多余的空白字符‘ ++++abc123---
- mysql 索引详解:在mysql 中,索引可以分为两种类型 hash索引和 btree索引。 什么情况下可以用到B树索引?&nb
- 抽取出我们代码中共性的东西是一个很好的编程习惯。 比如,像以下的两个Python函数:def say_hello(person_name):
- TensorFlow-gpu1.安装Anaconda进入官网(https://www.anaconda.com/) ->get sta
- 运行效果:完整代码from tkinter import *def click(num): global op op
- 字典的添加与修改# coding:utf-8if __name__ == '__main__':
- TensorFlow是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine
- 本文实例讲述了python对象及面向对象技术。分享给大家供大家参考,具体如下:1 先看一个例子. 本章将讲解这个例子程序:文件: filei
- 把列表传递给函数后, 函数就能直接访问列表中的内容咯。假设有一组专家,我们想邀请他们参加研讨会。def send_invitation(ex
- 今天刚好需要配置mysql 5.5.45,因为数据库量挺大的,所以必须优化,要不mysql真的不快。(1)、max_connections:
- 我们知道,dropout一般都在训练的时候使用,那么测试的时候如何也开启dropout呢?在pytorch中,网络有train和eval两种
- SQLSERVER查看数据库日志方法和语句示例,已亲测。首先需要查看日志大小:EXEC sys.sp_enumerrorlogs; 可以获取