自己写的一个基于jquery的js+ajax分页控件,希望对大家有帮助!源代码及例子在附件中,欢迎大家下载并根据自己的需要修改。
/**
*container:div容器
*totalRecordCount:总记录条数
*pageSize:页面大小
*dataUrl:ajax请求路径
*callBack:ajax 回调函数
*/
function PageControl(container,totalRecordCount,pageSize,dataUrl,callBack){
this.pageSize = pageSize || 10;//页面大小
this.currentPage = 1;//当前页,默认为1
this.totalRecordCount = totalRecordCount || 0;//总记录条数
this.dataUrl = dataUrl || "";
this.container = container;//装载分页控件的容器
this.pageCount = this.div(this.totalRecordCount,this.pageSize);
this.callBack = callBack;
}
PageControl.prototype = {
div:function(firstNum, secondNum){
var n1 = Math.round(firstNum);
var n2 = Math.round(secondNum);
var rslt = parseInt(n1 / n2);
var m = n1 % n2;
return m>0?rslt+1:rslt;
},
/**
* 跳转到某一页
*/
goToPage:function(pageNum){
this.currentPage = pageNum;
this.paint();
this.getAjax(pageNum,this);
},
/*
* 上一页
*/
prevPage:function(){
this.currentPage = this.currentPage<=1?1:this.currentPage-1;
this.goToPage(this.currentPage);
},
/**
* 下一页
*/
nextPage:function(){
this.currentPage = this.currentPage>=this.pageCount?this.pageCount:this.currentPage+1;
this.goToPage(this.currentPage);
},
getAjax:function(pagNum,instance){//调用jquery ajax get请求
if(this.dataUrl==="")return;
var str = (this.dataUrl.indexOf("?")>=0?"&":"?")+"pageSize="+this.pageSize+"&pageNum="+this.currentPage+"&r="+Math.random();
var url = this.dataUrl + str;
try{
$.get(url,function(data){
if(typeof(instance.callBack)!="undefined" && instance.callBack!=null ){
instance.callBack(data,instance);
}
});
}catch(e){
throw e;
}
},
paint:function(){
var strArr = [];
if(this.currentPage>1)
strArr.push("<div id='divPageControlPrev' class='page-control-forward'><a href='javascript:void(0);'>< Prev</a></div>");
var _t = 8;
var size = 5;
if(this.pageCount<=_t){
this.paintPart(1,this.pageCount,strArr);
}else{
var className = 1==this.currentPage?"page-control-pagenum-selected":"page-control-pagenum";
strArr.push("<div class='"+className+"'><a href='javascript:void(0);'>"+1+"</a></div>");
if(this.currentPage>=_t){
var t = (this.currentPage+size)>=this.pageCount?(this.pageCount-1):(this.currentPage+size);
strArr.push("<div class='page-control-split'>...</div>");
this.paintPart(this.currentPage - size,t,strArr);
if((this.currentPage+size) < this.pageCount-1)
strArr.push("<div class='page-control-split'>...</div>");
}else{
if(this.pageCount>=_t){
var t = (this.currentPage+size)>=this.pageCount?(this.pageCount-1):(this.currentPage+size);
this.paintPart(2,t,strArr);
if((this.currentPage+size) < this.pageCount-1)
strArr.push("<div class='page-control-split'>...</div>");
}else{
this.paintPart(2,this.pageCount-1,strArr);
}
}
var _temp = this.pageCount;
var className = _temp==this.currentPage?"page-control-pagenum-selected":"page-control-pagenum";
strArr.push("<div class='"+className+"'><a href='javascript:void(0);'>"+_temp+"</a></div>");
}
if(this.currentPage<this.pageCount)
strArr.push("<div id='divPageControlNext' class='page-control-forward'><a href='javascript:void(0);'>Next ></a></div>");
$(this.container).html(strArr.join(""));
this.bindEvents(this);
},
paintPart:function(start,end,arr){
for(var c = start;c<=end;c++){
var className = c==this.currentPage?"page-control-pagenum-selected":"page-control-pagenum";
arr.push("<div class='"+className+"'><a href='javascript:void(0);'>"+c+"</a></div>");
}
},
bindEvents:function(instance){//绑定事件
$("#divPageControlPrev").bind("click",function(){
instance.prevPage();
});
$("#divPageControlNext").bind("click",function(){
instance.nextPage();
});
$(".page-control-pagenum a").each(function(){
$(this).bind("click",function(){
var pageNum = parseInt($(this).html());
instance.goToPage(pageNum);
});
});
}
}
分享到:
相关推荐
2. **编写Ajax请求**:使用JavaScript(例如jQuery库)编写Ajax请求,当用户操作分页控件时,向服务器发送请求。 3. **服务器处理**:在服务器端,根据接收到的页码和每页大小,执行相应的SQL查询,获取对应的数据。...
在ASP.NET开发中,使用Ajax和jQuery实现分页控件是一种常见的优化用户体验的方式。这种方式能够实现页面局部刷新,提高网页的响应速度,而无需每次请求都加载整个页面。以下是关于这个主题的一些关键知识点: 1. **...
`jquery.pagination.js` 是一个基于jQuery的分页插件,它提供了一种方便的方式来实现AJAX分页。jQuery是一个流行的JavaScript库,简化了DOM操作、事件处理和Ajax交互等任务,使得JavaScript编程更加简单。 `README....
本文将深入探讨如何结合AspNetPager分页控件、jQuery和AJAX技术来实现服务器端数据源的无刷新分页。 AspNetPager是由WebControlsWPC公司开发的一款强大的ASP.NET分页控件,它支持多种数据库和数据源,提供了丰富的...
《基于jQuery实现简单的分页控件》 在网页开发中,分页功能是常见的数据展示方式,尤其是在数据量较大的情况下,它可以有效地组织信息,提高用户体验。这篇文章主要介绍如何使用jQuery来实现一个简单易用的分页控件...
总结,这个基于jQuery的分页控件利用了jQuery的强大功能,实现了Twitter风格的Ajax分页。通过理解和运用这些知识点,开发者可以创建出更加优雅、高效的网页应用。同时,提供的源码是一个宝贵的教育资源,可供学习者...
在描述中提到的"JQuery autocomplete ajax分页",意味着这个实现增加了分页功能。分页是处理大量数据的常用方法,它可以将数据分成多个部分,每次只加载一部分到前端,这样可以减少一次性加载所有数据带来的性能问题...
在现代Web应用开发中,异步分页是一种常见的优化用户体验的技术,它允许用户在不刷新整个页面的...在实际项目中,还可以根据需求进行进一步的优化,如添加分页控件的样式、处理错误状态以及实现无刷新加载指示器等。
Ajax分页显示则利用JavaScript和jQuery库,使得页面无需刷新即可获取并展示数据。在后台,Struts2 Action会根据请求参数(如当前页码)查询数据库,并返回一个包含文件信息的集合。前端通过Ajax异步请求这个结果,...
1.无刷新分页控件,以Northwind数据库为示例, 2.支持多种分页样式选择,也可以自己修改源代码自定义 3.可以单击任意字段排序 4.MsSql数据库封装访问类,可以修改代码应用于其他数据库 5.继承自IHttpHandler接口...
// 假设`#pager`是我们的分页控件 $('#pager').on('click', 'a.page-link', function (e) { e.preventDefault(); // 阻止默认的链接行为 var pageNumber = $(this).data('page'); // 获取点击的页码 var ...
【描述】:这个项目演示了如何结合jQuery和Ajax技术,创建一个具有动态加载、分页和排序功能的GridView控件。通过Ajax无刷新更新,提供流畅的用户体验,而jQuery则用于增强DOM操作和事件处理,使得用户交互更为便捷...
【标题】"一个JQuery +Ajax 封闭的一个GridView控件"揭示了这个项目的核心是使用JQuery和Ajax技术来实现一个类似于ASP.NET中的GridView的数据展示控件。GridView控件通常用于在网页上以表格形式展示数据,允许用户...
首先,`jquery-1.4.2.min.js`是jQuery库的压缩版本,它是JavaScript的一个强大的库,提供了丰富的DOM操作、事件处理、动画效果和Ajax交互等功能。jQuery简化了JavaScript的使用,使得开发者可以更便捷地实现各种复杂...
.NET AJAX分页控件是针对.NET框架设计的,可以应用于WebForm和MVC两种开发模式。WebForm是.NET Framework中的经典模型,基于页面生命周期和服务器控件,而MVC(Model-View-Controller)则是一种更为现代的设计模式,...
总的来说,这个基于jQuery的分页控件提供了一种高效、便捷的方式来处理数据分页,通过AJAX技术实现了无刷新的页面切换,极大地提升了用户体验。结合适当的前端框架和后端API,可以轻松地将其整合到各种Web应用中。...
1. **jQuery**: jQuery是一个高效、简洁且易用的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互。jQuery-1.7.2.js是这个版本的库文件,提供了许多功能,如选择器(用于查找DOM元素)、DOM操作...
首先,jQuery是一个轻量级、功能强大的JavaScript库,常用于DOM操作、事件处理和AJAX交互。Vue.js则是一个渐进式的JavaScript框架,它强调数据驱动和组件化,使得构建用户界面更加容易。当两者结合时,可以充分利用...