jquery自制分页,控制easyui datagrid分页,集中处理了一下前后台

因为客户需要特殊样式分页程序,本来用的是easyui的datagrid控件,但分页样式无法满足客户需求。所以把datagrid的分页属性去掉,自己写了一个分页。然后调用datagrid的 $("#test").datagrid("reload", url);

先看easyui的datagrid跟自写的分页怎么结合的吧:

<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title>Complex DataGrid - jQuery EasyUI Demo</title>
	<link rel="stylesheet" type="text/css" href="../themes/default/easyui.css">
	<link rel="stylesheet" type="text/css" href="../themes/icon.css">
	<link rel="stylesheet" type="text/css" href="demo.css">
	<script type="text/javascript" src="../jquery-1.7.2.min.js"></script>
	<script type="text/javascript" src="../jquery.easyui.min.js"></script>
	<script>
		$(function(){
			$('#test').datagrid({
				url:'datagrid_data.aspx',
				idField:'code',
				frozenColumns:[[
	                {field:'ck',checkbox:true},
	                {title:'Code',field:'code',width:80,sortable:true}
				]],
				columns:[[
					{field:'name',title:'Name',width:120},
					{field:'addr',title:'Address',width:220},
					{field:'col4',title:'Col41',width:150}
				]],
				rownumbers:true,
				onBeforeLoad: function(param){
				    param.page = param.requestPage || param.page || 1;
				    param.requestPage = undefined;
				    param.rows = 10;
				    $(".demo-info .page").html("向服务器请求的页码 page 为 " + param.page + "\r\n check it on server side by Request[\"page\"]");
				}
			});
		});
		function gotoPage(page){
		    $("#test").datagrid("reload", {requestPage:page});
		}
	</script>
</head>
<body>
	<h2>Complex DataGrid</h2>
	<div class="demo-info">
		<div class="demo-tip icon-tip"></div>
		<div class="page"></div>
	</div>
	
	<div style="margin:10px 0;">
		<a href="###" οnclick="gotoPage(1)">第一页  </a>
		<a href="###" οnclick="gotoPage(2)">第二页</a>
		<a href="###" οnclick="gotoPage(3)">第三页</a>
		<a href="###" οnclick="gotoPage(4)">4</a>
		<a href="###" οnclick="gotoPage(5)">5</a>
	</div>
	
	<table id="test"></table>
	
</body>
</html>

  然后下一步就是写真正的 分页程序了,我只是做了一个实例,后台用了servlet获取了页数而已,弄了个大概。这个要真用在项目上需要根据项目自己修改,也算是个思路吧

<%@page import="org.apache.http.client.methods.HttpGet"%>
<%@page import="org.apache.http.impl.client.DefaultHttpClient"%>
<%@page import="org.apache.http.client.HttpClient"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>无标题页</title>
<script src="js/jquery-1.8.2.min.js"></script>
    <script type="text/javascript">
        var page = 1;
        var pagesize = 5;
        var s_name;
        $(function() {
            //------查询
        $("#search").click(function() {
                page = 1;
                s_name = $("#txtSearch").val();
                getAjaxData(s_name, page, pagesize);
            });
        });
        //------封装分页方法开始
        function getAjaxData(strwhere, page, pagesize) {
            $.ajax({
                type: "get",
                url: "${pageContext.request.contextPath}/util/loginServlet",
                datatype: "json",
                contentType: "application/json;charset=utf-8",
                //data:{ page: page, pagesize: pagesize,name: strwhere }, 或:
                data: "name=" + strwhere + "&page=" + page + "&pagesize=" + pagesize,
                success: function(data) {
                	  var objs=eval(data); //解析json对象  
	console.info(objs);
	console.info(objs[0].msg);
                /* 	 $.each(data, function(index, item) {  
                      }); */
                    var htmlStr = "";
                     htmlStr += "<table>"
                    htmlStr += "<thead>"
                    htmlStr += "<tr><td>编号</td><td>姓名</td><td>年龄</td><td>备注</td></tr>"
                    htmlStr += "</thead>";
                    htmlStr += "<tbody>"
                     for (var i = 0; i < 5; i++) {
                        htmlStr += "<tr>";
                        htmlStr += "<td>" + 23 + "</td>"
                                          + "<td>" + 81 + "</td>"
                                          + "<td>" + 82 + "</td>"
                                          + "<td>" + 83 + "</td>"

                        htmlStr += "</tr>";
                    }  
                    //如果查询出得结果总数小于pagesize则用空行填充
                    if (data.total< pagesize) {
                        for (var i = 0; i < pagesize - data.total; i++)
                         {
                            htmlStr += "<tr><td style='height:28px;'></td></tr>";
                         }
                    }
                    htmlStr += "</tbody>";
                    htmlStr += "<tfoot>";
                    htmlStr += "<tr>";
                    htmlStr += "<td colspan='4'>";
                    htmlStr += "<span>总:" + objs[0].msg + "条 当前:" + page + "/<span id='count'>" + (objs[0].msg % pagesize == 0 ? parseInt(objs[0].msg / pagesize) : parseInt(objs[0].msg / pagesize + 1)) + "</span>页" + "</span>";
                    htmlStr += "<a href='javascript:GoToFirstPage()'id='aFirstPage' >首    页</a>";
                    htmlStr += "<a href='javascript:GoToPrePage()'  id='aPrePage' >上一页</a>";
                    htmlStr += "<a href='javascript:GoToNextPage()' id='aNextPage'>下一页</a>";
                    htmlStr += "<a href='javascript:GoToEndPage()'  id='aEndPage' >尾    页</a>";
                    htmlStr += "<input type='text' /><input type='button'  value='跳转' οnclick='GoToAppointPage(this)' /> ";
                    htmlStr += "</td>";
                    htmlStr += "</tr>";
                    htmlStr += "</tfoot>";
                    htmlStr += "</table>";
                    $("#userlist").html(htmlStr);

                },
                error: function(error) {
                    alert(error);
                }
            });
        }
        //--------封装分页方法结束
        //首页
        function GoToFirstPage() {
            page = 1;
            getAjaxData(s_name, page, pagesize);
        }
        //前一页
        function GoToPrePage() {
            
            page = page-1<= 0 ? 1 : page-1;
            getAjaxData(s_name, page, pagesize);
          
        }
        //后一页
        function GoToNextPage() {
            if (page + 1 <= parseInt($("#count").text())) {
                page=page+1;
            }
            getAjaxData(s_name, page, pagesize);
        }
        //尾页
        function GoToEndPage() {
            page = parseInt($("#count").text());
            getAjaxData(s_name, page, pagesize);
        }
        //跳转
        function GoToAppointPage(e) {
            var page_goto = $(e).prev().val();
            if (isNaN(page_goto)) {
                alert("请输入数字!");
            }
            else {
                var tempPageIndex = page;
                page = parseInt($(e).prev().val());
                if (page < 0 || page >parseInt($("#count").text())) {
                    page = tempPageIndex;
                    alert("请输入有效的页面范围!");
                }
                else {
                    getAjaxData(s_name, page_goto, pagesize);
                }
            }
        }

    </script>
    <!--简单样式 -->
 <style type="text/css">
   #userlist{border:1px solid gray; width:500px; height:215px;}
   #userlist table{border-collapse: collapse; width:100%; height:auto;background:CFCFCF;}
   #userlist table thead{ margin:0; padding:0; background-color:#CCCCCC;text-align:center; height:30px; line-height:30px;}
   #userlist tbody tr{ height:28px; line-height:28px; text-align:center; }
   #userlist tfoot tr{ height:30px; background:#CCCCCC;line-height:30px; text-align:center;}
   #userlist tfoot tr td a{ text-decoration:none; margin:4px;}
   #userlist tfoot tr td a:hover{ text-decoration:underline; color:Red;}
   #userlist tfoot tr td input{ height:20px; width:40px; margin:4px;}
   #userlist tfoot tr td input[type=text]{ background:white; border:0;}
   #userlist tfoot tr td input[type=button]{ border:1px dashed; position:relative;top:0px;top:2px\0; cursor:pointer;}
 </style>
</head>
<body>
  
    用户姓名:<input type="text" name="name" id="txtSearch" /><input type="button" id="search"
        value="查询" /><br />
    <div id="userlist">
    </div>
    
</body>
</html>


后台的servlet:

package util;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


import net.sf.json.JSONArray;
import net.sf.json.JSONObject;






public class loginServlet extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		
		  
		resp.setContentType("text/html;charset=UTF-8");  
		        //禁用缓存,确保网页信息是最新数据  
		resp.setHeader("Pragma","No-cache");      
		resp.setHeader("Cache-Control","no-cache");      
		resp.setDateHeader("Expires", -10);  
		        PrintWriter out = resp.getWriter();  
		        

		        Json j = new Json();
		        j.setMsg("100");
		        
          
        JSONArray jsonArray = new JSONArray();  
        jsonArray.add(j);  
        
		  System.out.println(jsonArray.toString());
		  out.write(jsonArray.toString());  

          out.flush();
          out.close();
		  
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		doGet(req, resp);
	}
	

}



简单的配置一下web.XMl:

<?xml version="1.0" encoding="GB18030"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
    <welcome-file-list>
    <welcome-file>page.jsp</welcome-file>
  </welcome-file-list>
  <error-page>
  <error-code>404</error-code>
  <location>/sys/error/error404.jsp</location>
  </error-page>
  
  
    <servlet>
    <servlet-name>loginServlet</servlet-name>
    <servlet-class>util.loginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>loginServlet</servlet-name>
    <url-pattern>/util/loginServlet</url-pattern>
  </servlet-mapping>
</web-app>


代码很乱,脑子有乱,感觉差不多就行,大概看看就能懂。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值