jquery easyui pagination 结合springmvc 实现分页功能完整代码实现

首先声明 关于分页功能 比较难的是前端功能实现,后端 功能相对简单,如果没有搞清楚重点的同学要自行多理解

先上后端的代码,controller 层的下面两个方法主要是进行获取总的数据条目数,和根据页面获取列表的两个函数。其中PageModel 是一个分页实体类,只有三个属性 以及对应的get 和set 方法。

private int page 

private int rows

private int startIndex

	@RequestMapping(value = "/getTotal")
	@ResponseBody
	public int getTotalCount() throws Exception {
		List<CustomerServiceEntity> list = customerService.getList(null);
		return list.size();
	}

	@RequestMapping(value = "/list")
	@ResponseBody
	public List<CustomerServiceEntity> getListForService(PageModel page,HttpServletRequest request) throws Exception {
		// 调用服务层的list方法
		// 传入page 对象帮助进行分页
		// 处理一下分页对象
		String strName= request.getParameter("page");
		String rows= request.getParameter("rows");
		System.out.println(strName);
		System.out.println(rows);
		
		if (page.getPage() == 0) {
			page = null;
		} else {
			int startindex = (page.getPage() - 1) * page.getRows();

			page.setStartIndex(startindex);
			
		}

		List<CustomerServiceEntity> list = customerService.getList(page);

		return list;

	}

SQL语句如以下所示,用的是mybatis 框架,数据库是mysql

	<select id="listAll" parameterType="PageModel" resultType="CustomerServiceEntity">
		
		select * from 
		<include refid="table"></include>
		
		<if test="startIndex!=null and rows!=null">
			limit #{startIndex} , #{rows}
			
		</if>
		
		
	</select>

然后重点来了,前端如何实现,重点是table 和pagination 的几处js代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title>服务分配</title>
		<script type="text/javascript" src="../jquery-easyui-1.3.3/jquery.min.js"></script>
		<script type="text/javascript" src="../jquery-easyui-1.3.3/jquery.easyui.min.js"></script>
		<script type="text/javascript" src="../jquery-easyui-1.3.3/locale/easyui-lang-zh_CN.js" ></script>
		<link rel="stylesheet" type="text/css" href="../jquery-easyui-1.3.3/themes/default/easyui.css" />
		<link rel="stylesheet" type="text/css" href="../jquery-easyui-1.3.3/themes/icon.css" />
		<script type="text/javascript" src="../jquery-easyui-1.3.3/jquery.edatagrid.js"></script>
		<script type="text/javascript" src="../js/common.js"></script>
		<script>
			function dlgForServiceDispatch(){
				
				var selectedItems=$("#table_serviceManager").datagrid("getSelections");
				if(selectedItems.length!=1)
				{
					$.messager.alert("系统提示!","请仅选择一条需要分配的客户数据!");
					return;
				}
				else
				{
					var row=selectedItems[0];
					$("#div_dlg").dialog("open").dialog("setTitle","分配客户服务");
					$("#frm").form("load",row);
					$("#assignTime").val();
				}
			}
			
			function closeDlg(){
				$("#div_dlg").dialog("close");
			}
			function saveDlg()
			{
				$("#frm").form("submit");
			}
			function dlgDel(){
				var item=$("#table_serviceManager").datagrid("getSelections");
				if(item.length!=1)
				{
					$.messager.alert("系统提示!","请仅选择一条要删除的数据!");
				}
				else
				{
					var id=item[0].id;
					$.messager.confirm("系统提示","您确认要删除这条数据吗?",function(r){
						
						if(r){
							$.post("${pageContext.request.contextPath}/service/delete",{id:id},function(result){
								console.log(result);
								if(result=="DONE")
								{
									$.messager.alert("系统提示!","已经成功删除!");
									$("#table_serviceManager").datagrid("reload");
								}
								else
								{
									$.messager.alert("删除失败!");
								}
							});
						}
					});
				}
			}
			//加载datagrid的一些信息
			$(document).ready(function(){
				var total;
				
				$.post("${pageContext.request.contextPath}/service/getTotal",{},function(res){
					console.log(res);
					total=res;
					$("#pageSelect").pagination({
						total:res,
						onSelectPage:function(pageNumber,pageSize){
							
							$("#table_serviceManager").edatagrid({
								url:"${pageContext.request.contextPath}/service/list?page="+pageNumber+"&rows="+pageSize
							});
						}
					});
					console.log($("#pageSelect").pagination.page);
					console.log($("#pageSelect").pagination.rows);
					$("#table_serviceManager").edatagrid({
						url:"${pageContext.request.contextPath}/service/list?page=1&rows=10"
					});
				});
				
			});
			
		</script>
	</head>

	<body style="overflow: hidden;">
		<div class="easyui-panel"  style="width:1100px;height: 800px;overflow: hidden;">

			<table border="" id="table_serviceManager" fitColumns="true"
				title="客户信息管理" class="easyui-datagrid" rownumbers="true" 
				data-options="singleSelect:true" toolbar="#tb">
				<thead data-options = "frozen:true">
					<tr>
						<th field="cb" checkbox="true" align="center"></th>
				 		<th field="id" width="50" align="center">编号</th>
				 		<th field="customer" width="150" align="center">客户</th>
				 		<th field="overview" width="300" align="center">概要</th>
				 		<th field="serviceType" width="150" align="center">服务类型</th>
				 		<th field="createPeople" width="150" align="center">创建人</th>
				 		<th field="createTime" width="150" align="center">创建日期</th>
					</tr>
				</thead>
				
			</table>
			<div class="easyui-panel">
					<div id="pageSelect" class="easyui-pagination"></div>
			</div>
			<div id="tb">
				<div>
					<a href="javascript:dlgForServiceDispatch()" class="easyui-linkbutton" iconCls="icon-fwfp" plain="true">分配</a>
					<a href="javascript:dlgDel()" class="easyui-linkbutton" iconCls="icon-remove" plain="true">删除</a>
				</div>
			</div>
		</div>
		<div id="div_dlg" class="easyui-dialog" 
			style="width: 750px; height: 450px;padding: 10px 20px;" closed="true">
			
			<form action="${pageContext.request.contextPath}/service/saveDispatch" method="post" id="frm">
				
				<table cellspacing="8px">
					<tr style="display:none">
						<td>
							<input name="id" type="text"></input>
						</td>
					</tr>
					<tr>
						<td>服务类型</td>
						<td>
							<input type="text" name="serviceType" readonly="readonly" />
						</td>
						<td>&nbsp;</td>
						<td>客户</td>
						<td>
							<input type="text" name="customer" readonly="readonly" />
						</td>
					</tr>
					<tr>
						<td valign="top">概要</td>
						<td colspan="4">
							<input type="text" name="overview" class="easyui-validatebox" required="true" />
						</td>
					</tr>
					<tr>
						<td>服务请求</td>
						<td colspan="4">
							<textarea name="serviceRequest" rows="5" cols="40" ></textarea>
						</td>
					</tr>
					<tr>
						<td>创建人</td>
						<td>
							<input type="text" name="assigner" readonly="readonly" />
						</td>
						<td>&nbsp;</td>
						<td>创建时间</td>
						<td>
							<input type="text" name="createTime" id="createTime" readonly="readonly" />
						</td>
					</tr>
					<tr>
						<td>分配给</td>
						<td>
							<input type="text"  class="easyui-combobox, easyui-validatebox"  name="serviceProcePeople" value="" />
							<font color="red">*</font>
						</td>
						<td></td>
						<td>分配时间</td>
						<td>
							<input type="text" class="easyui-datetimebox" name="assignTime" id="assignTime" />
						</td>
					</tr>
					<tr>
						<td colspan="3"></td>
						<td colspan="2">
							<a href="javascript:saveDlg()" class="easyui-linkbutton" iconCls="icon-ok">保存</a>
							<a href="javascript:closeDlg()" class="easyui-linkbutton" iconCls="icon-cancel">取消</a>
						</td>
					</tr>
				</table>
			</form>
			
		</div>
	</body>

</html>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值