您的位置:首页 > Web前端 > JQuery

基于Jquery+Ajax+Json实现分页显示

2014-07-30 00:58 651 查看
1.后台action产生json数据。

[java] view
plaincopy

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相关配置

[html] view
plaincopy

<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数据分页显示

[javascript] view
plaincopy

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();

})

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: