今天写了一个AJAX分页,把思路整理一下。
private int count = 0;// 总记录数
private int currentPage = 0; //当前页面
private int pageSize = 10; // 每页记录数
private int totalPage = 1; //总页总书
//从数据取出总记录数,求出页面总数
count = XXXService.getCount(st);
if(count>0){
if(count % pageSize!=0){
totalPage = count / pageSize + 1;
}else
totalPage = count /pageSize;
}
/**根据http传入的第几页,从数据库找出记录**?
currentPage = Integer.valueOf(_request.getParameter("page"));
String hql = "from RfVipVoucher rfVipVoucher where rfVipVoucher.buyer = " + person.getId();
List buyRecord = XXXServicer.findByHql(hql,currentPage,pageSize);
Iterator ite = buyRecord.iterator();
StringBuffer xml = new StringBuffer("<?xml version=\"1.0\" encoding=\"GBK\" ?>");
xml.append("<response>");
int index = 0;
while (ite.hasNext()) {
RfVipVoucher rfVipVoucher = (RfVipVoucher) ite.next();
String num = rfVipVoucher.getNum();
Integer cardTime = rfVipVoucher.getCardTime();
String buyTime = UtilTools.formatDate(rfVipVoucher.getGerTime(),"long");
String flag = rfVipVoucher.getFlag().equals("0") ? "未激活卡" :"已激活卡";
String activeTime = (rfVipVoucher.getPutTime()!= null)? UtilTools.formatDate(rfVipVoucher.getGerTime(),"long"):"点击激活";
xml.append("<rfVipVoucher>");
xml.append("<index>");
xml.append(index);
xml.append("</index>");
xml.append("<num>");
xml.append(num);
xml.append("</num>");
xml.append("<cardTime>");
xml.append(cardTime);
xml.append("</cardTime>");
xml.append("<buyTime>");
xml.append(buyTime);
xml.append("</buyTime>");
xml.append("<flag>");
xml.append(flag);
xml.append("</flag>");
xml.append("<activeTime>");
xml.append(activeTime);
xml.append("</activeTime>");
xml.append("</rfVipVoucher>");
index++;
}
xml.append("<page>");
xml.append(currentPage);
xml.append("</page>");
xml.append("<totalPage>");
xml.append(totalPage);
xml.append("</totalPage>");
xml.append("</response>");
_response.setContentType("text/xml;charset=GBK");
_response.setHeader("Pragma", "No-cache");
_response.setHeader("Cache-Control", "no-cache");
_response.setDateHeader("Expires", 0);
function loadRecord(page){ // 加载第page页的数据
var url = "<%=contextPath%>/userCenter/RFContextBuyRecord.html?page="+page+"&timeStamp=" + new Date().getTime();
AJAXUtil.doRequstUsingGet(recordStateChange,url,true);
}
function recordStateChange(){
var xmlDoc = xmlHttpRequest.responseXML;
var nums=xmlDoc.getElementsByTagName("num");
var cardTimes=xmlDoc.getElementsByTagName("cardTime");
var buyTimes=xmlDoc.getElementsByTagName("buyTime");
var flags=xmlDoc.getElementsByTagName("flag");
var activeTimes=xmlDoc.getElementsByTagName("activeTime");
var len = nums.length;
var tab = document.getElementById("recordList");
/**清空表**/
clearRecordList();
var row, cell, txtNode;
for (var i = 0; i < len; i++) {
var num = nums[i].firstChild.data;
var cardTime=cardTimes[i].firstChild.data;
var buyTime=buyTimes[i].firstChild.data;
var flag=flags[i].firstChild.data;
var activeTime=activeTimes[i].firstChild.data;
row = document.createElement("tr");
row.appendChild(createCellWithText(num));
row.appendChild(createCellWithText(cardTime));
row.appendChild(createCellWithText(buyTime));
if(flag=="未激活卡") row.appendChild(createCellWithElement("未激活卡"));
else row.appendChild(createCellWithText(flag));
if(activeTime=="点击激活") row.appendChild(createCellWithElement("点击激活"));
else row.appendChild(createCellWithText(activeTime));
tab.appendChild(row);
}
var page = parseInt(xmlDoc.getElementsByTagName("page")[0].firstChild.data);
var totalPage = parseInt(xmlDoc.getElementsByTagName("totalPage")[0].firstChild.data);
var totalSpan = document.getElementById("totalSpan");
var preA = document.getElementById("preA");
var nextA = document.getElementById("nextA");
document.getElementById("page").value = page;
totalSpan.innerHTML = "<font color='red'>" +page+"/"+totalPage+"</font>";
if(page<=1){
preA.onclick = function(){
return;
};
}else{
preA.onclick=function (){
var p=parseInt(document.getElementById("page").value)-1;
loadRecord(p);
};
}
if(page>=totalPage){
nextA.onclick= function(){
return;
};
}else{
nextA.onclick=function (){
var p=parseInt(document.getElementById("page").value)+1;
loadRecord(p);
};
}
}
function createCellWithText(text){ //创建一个TD元素,内含文本
var cell= document.createElement("td");
cell.appendChild(document.createTextNode(text));
cell.style.textAlign = "center";
cell.style.border = "1px solid #94D7F1";
return cell;
}
function createCellWithElement(text){ //创建一个TD元素,内含元素
var cell= document.createElement("td");
var aElement = document.createElement("a")
aElement.href="<%=contextPath %>/RF/preVipVoucher.html";
aElement.target="_blank";
var txt = document.createTextNode(text)
aElement.appendChild(txt);
cell.appendChild(aElement);
cell.style.textAlign = "center";
cell.style.border = "1px solid #94D7F1";
return cell;
}
function clearRecordList(){
var tab = document.getElementById("recordList");
while(tab.childNodes.length > 0) {
tab.removeChild(tab.childNodes[0]);
}
}
分享到:
相关推荐
这个"ASP.NET源码——Ajax分页小代码.zip"压缩包显然包含了一个使用ASP.NET实现的Ajax分页功能的示例代码。 在ASP.NET中,实现Ajax分页通常涉及到以下几个关键知识点: 1. **ASP.NET Web Forms与控件**:ASP.NET ...
本文将深入探讨如何在ASP.NET环境中实现Ajax分页,并提供相关知识点。 首先,理解Ajax的核心概念至关重要。Ajax并非一种编程语言,而是一种使用现有技术(JavaScript、XMLHttpRequest对象、DOM和CSS)进行异步数据...
【Ajax分页技术详解】 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。...通过理解和实践“ajax分页demo”,开发者可以更好地掌握Ajax在实际项目中的应用。
在"Ajax征服——Ajax小偷模块 源码"中,我们可能会涉及到以下几个关键知识点: 1. **XMLHttpRequest对象**:这是Ajax的基础,用于在后台与服务器进行通信。通过创建XMLHttpRequest实例,我们可以打开到服务器的连接...
这个压缩包"ASP.NET源码——Ajax三级联动和无刷新分页源码.zip"提供了两个关键功能的实现:Ajax三级联动和无刷新分页。 **Ajax三级联动**是Web开发中的常见交互模式,主要用于提升用户体验。在传统的网页交互中,...
JavaScript中的Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器交换数据并更新部分网页内容,使得用户可以一边浏览页面,一边进行...
《JavaScript凌厉开发——Ext JS3详解与实践》是一本深度探讨JavaScript库Ext JS3的专著,旨在帮助开发者深入理解和高效运用这一强大的前端框架。本文将围绕标题、描述及标签,详细介绍Ext JS3的核心概念、关键特性...
在Spring Boot框架中,实现Ajax动态加载分页是一项常见的需求,尤其在开发数据量庞大的Web应用时。Ajax技术能够提供异步数据加载能力,避免页面整体刷新,提高用户体验。下面我们将详细探讨如何在Spring Boot中结合...
5. **Ajax支持**:如果实例中包含了Ajax分页,那么开发者需要理解ASP.NET的UpdatePanel和ScriptManager组件,以及JavaScript和jQuery的基本用法。Ajax分页可以在不刷新整个页面的情况下更新内容,提高用户体验。 6....
Ajax分页则是这种技术的一种增强版,它利用了异步JavaScript和XML(Ajax)的技术特性,实现了无刷新的页面切换,提升了用户的浏览体验。 Ajax分页的核心在于通过Ajax请求从服务器获取分页数据,而不是重新加载整个...
**jQuery分页插件——实现高效美观的Ajax分页** 在网页开发中,尤其是在处理大量数据展示时,分页功能是不可或缺的一部分。它能够帮助用户更有效地浏览和管理信息,而无需一次性加载所有数据,从而提高用户体验。...
**Ajax技术详解与相册模块实现** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个...通过理解和实践这个源码,你不仅可以掌握Ajax的基本用法,还能了解到如何结合其他前端技术构建复杂的功能模块。
在IT行业中,Ajax(Asynchronous JavaScript and XML)技术是一种用于创建快速、动态网页的重要方法。它允许我们在不刷新整个...通过这样的实践,开发者可以深入理解Ajax的工作机制,并提升Web应用的动态性和实时性。
**三、Ajax分页实例——apTabs Ajax动态网页选项卡PHP版** apTabs是一款基于Ajax的PHP选项卡插件,它可以实现页面内容的无刷新分页显示。使用时,需要将该插件集成到项目中,配置相应的参数,如请求地址、分页大小...
**AJAX——新手快车道** 在当今的网页开发领域,AJAX(Asynchronous JavaScript and XML)已经成为不可或缺的技术,它让网页能够实现异步更新,无需每次用户交互都刷新整个页面。这个“新手快车道”将带你全面了解...
然而,无刷新分页通过使用Ajax(异步JavaScript和XML)技术实现了页面内容的局部更新。jQuery是一个轻量级的JavaScript库,它简化了DOM操作、事件处理和Ajax交互等任务。在这个源码中,开发者可能使用了jQuery的Ajax...