`
yaolifei
  • 浏览: 23796 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

JQuery 服务器端分页

阅读更多

自己写了一个JQuery的分页插件,大家看看:

页面上调用:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<link type="text/css" rel="stylesheet" href="css/base/jquery-ui.css" />
<link type="text/css" rel="stylesheet" href="css/page/style.css" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.page.js"></script>
<script type="text/javascript" src="js/custom.js"></script>
</head>

<body>
<div>
	<table>
		<tr class="title">
			<td>id</td><td>name</td>
		</tr>
		<tr class="title">
			<td colspan=2>
				<div id="pagebar"></div>			
    			</td>
		</tr>
	</table>
<div>
    
    
</body>

 分页插件:

$.fn.page = function(options){
	var settings = {
		size: 10,
		url: "index.do"
	};
	if(options){
		$.extend(settings, options);
	}
	this.addClass("page");
	
	
	var p = '#'+this.attr("id");		//分页条的ID
	var url = settings.url;		//请求的服务器路径
	var size = settings.size;		//每页显示的记录数
	var curPage = 1;			//当前页数
	var maxPages = 0;
	var maxRows = 0;
	
	var pgBar = '<div class="pgBar">';
	pgBar += '<img src="css/page/images/separator.gif" class="separator" />';
	pgBar += '<img src="css/page/images/first.gif" alt="首页" class="firstBtn" />';
	pgBar += '<img src="css/page/images/separator.gif" class="separator" />';
	pgBar += '<img src="css/page/images/prev.gif" alt="前页"  class="preBtn"/>';
	pgBar += '<img src="css/page/images/separator.gif" class="separator" />';
	pgBar += '<span class="pageInfo">第&nbsp;&nbsp;<label id="pageNo">1</label>&nbsp;&nbsp;页&nbsp;/';
	pgBar += '共&nbsp;&nbsp;<label id="pageAll">12</label>&nbsp;&nbsp;页</span>';
	pgBar += '<img src="css/page/images/separator.gif" class="separator" />';
	pgBar += '<img src="css/page/images/next.gif" alt="后页"  class="nextBtn"/>';
	pgBar += '<img src="css/page/images/separator.gif" class="separator" />';
	pgBar += '<img src="css/page/images/last.gif" alt="尾页"  class="endBtn"/>';
	pgBar += '<img src="css/page/images/separator.gif" class="separator" />';
	pgBar += '<span class="pageInfo">检索到&nbsp;&nbsp;<label id="rowAll">80</label>&nbsp;&nbsp;条记录</span>';
	pgBar += '<img src="css/page/images/separator.gif" class="separator" />';
	pgBar += '<div><input class="text" id="forwardPage"/><input class="button" id="forward" type="button" value="转到" /></div>';
	pgBar += '<div>';
	this.html(pgBar);
	
	loadData(url, size, curPage);		//第一次加载数据
	disablePrev(p);
	
	
	//点击首页
	$(p+" .firstBtn").click(function(){
		disablePrev(p);
		enableNext(p);
		if(curPage == 1) return;
		curPage=1;	
		//Ajax提交	
		loadData(url, size, curPage);
	});
	//点击前页
	$(p+" .preBtn").click(function(){
		enableNext(p);
		if(curPage == 1) return;
		curPage--;
		if(curPage == 1) {
			disablePrev(p);
		}		
		//Ajax提交
		 loadData(url, size, curPage);	
	});
	//点击后页
	$(p+" .nextBtn").click(function(){
		maxPages = $("#pageAll").text();
		if(curPage == maxPages) return;
		enablePrev(p);
		curPage++;
		if(curPage == maxPages)
			disableNext(p);
		
		//Ajax提交	
		//alert(curPage);
		loadData(url, size, curPage);
	});
	//点击尾页
	$(p+" .endBtn").click(function(){
		enablePrev(p);
		disableNext(p);
		maxPages = $("#pageAll").text();
		if(curPage == maxPages) return;
		curPage = maxPages;
		//alert(maxPages);
		
		//Ajax提交	
		//alert(curPage);
		loadData(url, size, curPage);
	});
	
	//点击跳转
	$(p+" #forward").click(function(){
		curPage = $("#forwardPage").val();
		maxPages = $("#pageAll").text();
		//alert(curPage.length);
		if(curPage.length == 0){
			alert("请输入要跳转的页数");
			return;
		}
			
		if(curPage == 1){
			disablePrev(p);
			enableNext(p);
		}
		if(curPage == maxPages){
			enablePrev(p);
			disableNext(p);
		}
		//ajax提交
		//alert(curPage);
		loadData(url, size, curPage);
		
	});
	
}
	//ajax方法
	function loadData(url, size, curPage){
		$.ajax({
			type:"POST",
			url:url,
			data:"curPage="+curPage+"&pageSize="+size,
			dataType:"json",
			beforeSend:function(){
				$(".ui-widget-overlay").show();
			},
			success:function(data){
				$("#pageNo").text(data.curPage);
				$("#pageAll").text(data.maxPageCount);
				$("#rowAll").text(data.maxRowsCount);
				$(".ui-widget-overlay").hide();
				var s= '';
				for(var i=0;i<data.list.length;i++){
					s+="<tr><td>"+data.list[i].jdid+"</td><td>"+data.list[i].jd+"</td></tr>";
				}

				$("table tr").not($(".title")).each(function(){$(this).remove();});
				$("table tr").eq(0).after(s);
				
			}
		});
	}
	
	//停用首页前页
	function disablePrev(p){
		$(p+" .firstBtn").attr("src","css/page/images/first_disabled.gif");
		$(p+" .preBtn").attr("src","css/page/images/prev_disabled.gif");
	}
	//
	function enablePrev(p){
		$(p+" .firstBtn").attr("src","css/page/images/first.gif");
		$(p+" .preBtn").attr("src","css/page/images/prev.gif");
	}
	
	function disableNext(p){
		$(p+" .nextBtn").attr("src","css/page/images/next_disabled.gif");
		$(p+" .endBtn").attr("src","css/page/images/last_disabled.gif");
	}

	function enableNext(p){
		$(p+" .nextBtn").attr("src","css/page/images/next.gif");
		$(p+" .endBtn").attr("src","css/page/images/last.gif");
	}
	
	

 

 

js中调用:

$(function(){
	$("#pagebar").page({size:15, url:"doIndex.jsp"});
});

 

处理页面:doIndex.jsp

<%

	GetData gd = new GetData();
	int curPage = 1;
	int pageSize = 10;
	
	if(request.getParameter("pageSize") != null)
		pageSize = Integer.parseInt(request.getParameter("pageSize"));
	if(request.getParameter("curPage") != null)
		curPage = Integer.parseInt(request.getParameter("curPage"));

	PageDao p = gd.getJd(curPage, pageSize);
	List list = p.getList();
	StringBuffer json = new StringBuffer();
	response.setHeader("Cache-Control", "no-cache");
	response.setContentType("text/json;charset=UTF-8");
	request.setCharacterEncoding("utf-8");			//构造json字符串
	//json.append("[");
	json.append("{");
	json.append("\"curPage\":"+p.getCurPage()+",");
	json.append("\"maxPageCount\":"+p.getMaxPageCount()+",");
	json.append("\"maxRowsCount\":"+p.getMaxRowsCount()+",");
	json.append("\"list\":");
		json.append("[");
		for(int i = 0; i < list.size();i++){
			TblJd jd = (TblJd)list.get(i);
			json.append("{");
			json.append("\"jdid\":\""+jd.getJdid()+"\",");	
			json.append("\"jd\":\""+jd.getJd()+"\"");	
			json.append("}");
			if(i != list.size()-1){
				json.append(",");
			}					
		}			
		json.append("]");
	json.append("}");
	//json.append("]");
	//System.out.println(json.toString());
	out.print(json.toString());
%>

 

2
1
分享到:
评论
2 楼 aa00aa00 2011-10-19  
兄弟用了你的分页,效果不错的,呵呵.就是我加了一个验证码的程序,在分页的时候,就出问题了?我的qq,296462311
1 楼 wucc1986 2009-11-21  
disablePrev(p){}
这个方法里 不需要把click事件解绑吗?

相关推荐

    jquery datatable serverside page 服务器端分页

    **jQuery DataTables 服务器端分页详解** jQuery DataTables 是一款功能强大的JavaScript库,用于将HTML表格转化为交互式数据视图。服务器端分页(Server-side pagination)是其核心特性之一,尤其适用于处理大量...

    Jquery Ajax分页(有实例)

    服务器端分页意味着每次用户翻页时,浏览器发送请求到服务器获取对应页面的数据;客户端分页则是在浏览器端处理数据分页,适用于数据量较小的情况。本实例中,我们将重点讨论服务器端分页。 1. **基本步骤** - **...

    jquerydatatable服务器端分页实现方法[借鉴].pdf

    以下是使用JQuery DataTables 实现服务器端分页的关键技术点: 1. **初始化设置**: - `bProcessing`: 设置为`false`表示在处理数据时不会显示等待提示框。 - `bServerSide`: 设置为`true`表明表格数据将在服务器...

    使用jquery实现表格动态分页

    本教程将详细讲解如何使用jQuery库来实现表格的动态分页,同时结合Java后端进行数据的动态查询和分页处理。 首先,让我们了解动态分页的基本原理。动态分页是指在用户滚动或点击分页按钮时,仅加载当前显示的数据,...

    jquery 无刷新分页排序

    服务器端根据排序条件处理数据,返回给客户端,最后由jQuery更新页面上的表格或其他展示数据的元素。 在提供的压缩包文件"JQPagination"中,可能包含以下内容: 1. **JavaScript文件**:用于实现jQuery无刷新分页...

    基于bootstrap+jQuery的前端分页

    综上所述,"基于bootstrap+jQuery的前端分页"项目涵盖了前端开发中的多个关键知识点,包括UI框架的使用、JavaScript库的应用、异步数据处理、响应式设计和前后端交互。通过理解和掌握这些技术,开发者可以构建出功能...

    jquery手机端列表分页样式.zip

    - 通过Ajax异步请求,从服务器获取新的分页数据,然后使用jQuery的DOM操作方法(如`append()`)将新数据添加到列表中。 - 根据用户交互更新当前页指示器和分页按钮的状态。 在实际应用中,还需要考虑性能优化,比如...

    jquery列表分页样式支持手机端分页滚动效果代码

    本资源"jquery列表分页样式支持手机端分页滚动效果代码"聚焦于如何利用jQuery实现一种适应手机端的列表分页效果,特别是在用户滚动页面时能流畅地加载更多内容。 首先,我们要理解分页在网页设计中的重要性。在数据...

    jquery实现前台分页

    本知识点主要讲解如何使用jQuery实现前台分页,这是一种无需服务器端处理,完全在客户端进行的数据分页技术。 首先,jQuery是一个轻量级的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互等任务。在...

    Jquery无刷新分页

    7. **分页算法**:在服务器端,需要实现分页算法,根据请求的页码和每页数量,计算出对应的记录范围,返回相应数据。 8. **安全性考虑**:防止用户直接修改URL中的页码参数,导致非法访问。服务器端应进行验证,...

    jquery+ajax分页

    4. **服务器端处理**:服务器端需要接收AJAX请求中的页码参数,根据页码查询数据库,然后返回对应页的数据,通常以JSON格式。 5. **客户端渲染**:在`success`回调中,我们将服务器返回的数据插入到页面相应的位置...

    基于JQuery的datagrid分页数据实现

    6. **分页实现**:分页通常由服务器端和客户端两部分组成。服务器端负责根据页码和每页数量计算需要返回的数据范围,然后从数据库中获取这些数据。客户端则通过Ajax请求,向服务器发送分页参数,并接收返回的数据,...

    jquery mobile分页显示插件

    7. **数据绑定**:与服务器端交互是分页的重要环节。你可以结合 AJAX 或其他数据绑定技术,动态加载每一页的数据,实现无缝分页体验。 8. **性能优化**:为了提升性能,应尽可能减少初始加载的数据量。分页插件可以...

    js jquery实现table假分页

    假分页,又称为模拟分页,是通过前端技术实现的一种分页效果,它并不涉及服务器端的数据分块,而是通过计算和显示有限的数据集来营造分页的感觉。 这篇博客的标题和描述指向了一个使用jQuery来实现表格假分页的实践...

    jquery插件--表格分页

    DataTables支持自定义分页样式,同时提供了多种数据源(如Ajax、服务器端、JSON等)的支持。 2. jqGrid:jqGrid是一个功能丰富的表格插件,它也包含了分页功能,允许用户自定义分页按钮和样式,支持动态加载数据。 ...

    jQuery静态分页插件.zip

    - 静态分页通常是在服务器端预先计算好每一页的数据,并将这些页面的数据存储在不同的HTML片段或者JSON格式中。当用户点击分页按钮时,插件会加载相应的页面内容,而不是重新向服务器请求全部数据。 3. **插件实现...

    jquery_pagination分页demo

    2. 分页计算:服务器端根据这些参数计算出查询的起始和结束位置,然后执行数据库查询。 3. 数据传输:服务器返回分页数据,可以是JSON格式或其他序列化格式。 4. 前端渲染:jQuery或其他JavaScript库用于动态更新DOM...

    .net 类的JQuery分页.net 类的JQuery分页

    在分页场景中,`Default.aspx`可能会包含一个GridView或ListView等数据绑定控件,这些控件可以通过设置其分页属性来实现服务器端分页。同时,页面上也会有jQuery的脚本来处理客户端的分页事件。 `Default.aspx.cs`...

    jquery 实现的分页功能

    通过理解这些知识点,开发者可以构建出适应各种需求的分页解决方案,无论是在PHP后台还是其他服务器端技术的支持下。同时,这样的无刷新分页方法也符合现代Web应用的交互设计理念,提高了用户体验。

Global site tag (gtag.js) - Google Analytics