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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jquery.datatable是一款常用的前端表格插件,它支持前端和后端分页两种方式。在后端分页的情况下,数据请求和处理都在服务器端完成,前端只需要展示和呈现数据。 在使用jquery.datatable进行后端分页时,我们需要进行以下步骤: 1.准备后端接口:需要在服务器端提供一个接口来处理数据请求。这个接口需要接受一些参数,例如当前页码、每页显示数量等。接口会根据这些参数查询数据库,并返回相应的数据结果。 2.前端配置datatable插件:在前端页面中,需要引入jquery.datatable的相应脚本文件,并配置datatable的参数。其中,重要的参数包括ajax配置项,用于指定后端接口的URL,以及服务器端接口需要的参数。 3.发送数据请求:当用户操作表格进行翻页或者其他操作时,jquery.datatable会根据配置的ajax参数自动发送数据请求到后端接口。请求参数中包含当前页码、每页显示数量等信息。 4.服务器处理请求:后端接口接收到数据请求后,根据请求参数进行相应的查询和处理操作。可以使用数据库查询语言等方式查询数据库,并返回结果给前端。 5.前端展示数据:jquery.datatable会自动根据后端返回的数据结果,生成对应的表格展示。同时,它还提供了丰富的功能和样式配置选项,使得表格的展示更加灵活和美观。 总结来说,使用jquery.datatable进行后端分页需要准备后端接口,配置前端datatable,并进行数据请求和处理。这样就能够实现在前端页面展示由后端数据查询而来的分页表格。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值