二、jq前端分页插件datatable使用

前端使用datatable分页插件和H-ui框架后端采用ssm框架

1.引入相关js

 <script type="text/javascript" src="../resources/common/lib/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript" src="../resources/common/lib/layer/2.1/layer.js"></script>
<script type="text/javascript" src="../resources/common/lib/laypage/1.2/laypage.js"></script> 
<script type="text/javascript" src="../resources/common/lib/My97DatePicker/WdatePicker.js"></script> 
<script type="text/javascript" src="../resources/common/lib/datatables/1.10.0/jquery.dataTables.min.js"></script> 
<script type="text/javascript" src="../resources/common/static/h-ui/js/H-ui.js"></script> 
<script type="text/javascript" src="../resources/common/static/h-ui.admin/js/H-ui.admin.js"></script> 

2.写div

  <table class="table table-border table-bordered table-hover table-bg table-sort">
<thead>
<tr class="text-c">
<th width="25"><input type="checkbox" name="" value=""></th>
<th width="80">ID</th>
<th width="100">用户名</th>
<th width="40">性别</th>
<th width="90">手机</th>
<th width="150">邮箱</th>
<th width="">地址</th>
<th width="130">加入时间</th>
<th width="70">状态</th>
<th width="100">操作</th>
</tr>
</thead>
</table>

3.配置datatable

    user_list();
function user_list(){
var startTime=$("#datemin").val();
var endTime=$("#datemax").val();
var search=$("#search").val();
$('.table-sort').dataTable({
"aaSorting": [[ 1, "desc" ]],//默认第几个排序
/* "bStateSave": true,//状态保存 */
"aLengthMenu" : [ 5, 10, 15 ] , //更改显示记录数选项     "iDisplayLength" : 2, //默认显示的记录数
   "bLengthChange": true,                  //是否允许用户自定义每页显示条数。
   "bPaginate": true,                      //是否分页。
   "bProcessing": true,                    //当datatable获取数据时候是否显示正在处理提示信息。
   "sPaginationType": 'full_numbers',      //分页样式
   "serverSide":true,
   "ajax": {
        url:"/wwwydl/s/usercontroller/json",
        type:"get",
            dataType: "json",
              data: { 'startTime':startTime,'endTime':endTime,'searchTime':search},
            dataSrc:  
                   function(data){                
                     if(data.recordsTotal==null){  
                       data.recordsTotal=0;  
                     }  
                     //查询结束取消按钮不可用   
                     return data.rows;//自定义数据源,默认为data  
                   },  
   },
   "retrieve":true,
   "columns": [
           { "data": "uid", 
             "bSortable": false,
             "render": function ( data, type, full, meta ) {  
                   return '<input type="checkbox" value="'+data+'" name="">';  
             }
           },
           { "data": "uid" },
           { "data": "uid" ,"bSortable": false},
           { "data": "username" ,"bSortable": false},
           { "data": "username" ,"bSortable": false},
           { "data": "username" ,"bSortable": false},
           { "data": "username" ,"bSortable": false},
           { "data": "userRtime" },
           { "data": "userpassword" ,"bSortable": false},
           { "data":  null,"bSortable": false,
             "render": function (data, type,row) {
             var id = '"' + data.uid + '"';
             var html = "<a title='编辑' href='javascript:;' class='ml-5' οnclick='user_edit(\"编辑\",\"users-add.jsp\","+ id + ",\"\",\"510\")' class='ml-5' style='text-decoration:none'><i class='Hui-iconfont'>&#xe6df;</i></a>";
                 html+="<a style='text-decoration:none' class='ml-5' onClick='user_stop(this,"+ id + ")' href='javascript:void(0);' title='停用'><i class='Hui-iconfont'>&#xe631;</i></a>";
                     html+="<a style='text-decoration:none' class='ml-5' onClick='change_password(\"修改密码\",\"change-password.jsp\","+ id + ",\"600\",\"270\")' href='javascript:;' title='修改密码'><i class='Hui-iconfont'>&#xe63f;</i></a>"
                 return html;
             }
           }
    ],
});
}

源码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="renderer" content="webkit|ie-comp|ie-stand">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<!--[if lt IE 9]>
<script type="text/javascript" src="lib/html5.js"></script>
<script type="text/javascript" src="lib/respond.min.js"></script>
<script type="text/javascript" src="lib/PIE_IE678.js"></script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="../resources/common/static/h-ui/css/H-ui.min.css" />
<link rel="stylesheet" type="text/css" href="../resources/common/static/h-ui.admin/css/H-ui.admin.css" />
<link rel="stylesheet" type="text/css" href="../resources/common/lib/Hui-iconfont/1.0.7/iconfont.css" />
<link rel="stylesheet" type="text/css" href="../resources/common/lib/icheck/icheck.css" />
<link rel="stylesheet" type="text/css" href="../resources/common/static/h-ui.admin/skin/default/skin.css" id="skin" />
<link rel="stylesheet" type="text/css" href="../resources/common/static/h-ui.admin/css/style.css" />
<!--[if IE 6]>
<script type="text/javascript" src="http://lib.h-ui.net/DD_belatedPNG_0.0.8a-min.js" ></script>
<script>DD_belatedPNG.fix('*');</script>
<![endif]-->
<title>用户管理</title>
</head>
<body>
<nav class="breadcrumb"><i class="Hui-iconfont"></i> 首页 <span class="c-gray en">></span> 用户中心 <span class="c-gray en">></span> 用户管理 <a class="btn btn-success radius r" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont"></i></a></nav>
<div class="page-container">
	<div class="text-c"> 日期范围:
		<input type="text" οnfοcus="WdatePicker({maxDate:'#F{$dp.$D(\'datemax\')||\'%y-%M-%d\'}'})" id="datemin" class="input-text Wdate" style="width:120px;">
		-
		<input type="text" οnfοcus="WdatePicker({minDate:'#F{$dp.$D(\'datemin\')}',maxDate:'%y-%M-%d'})" id="datemax" class="input-text Wdate" style="width:120px;">
		<input type="text" class="input-text" style="width:250px" placeholder="输入会员名称、电话、邮箱" id="search" name="search" id="search">
		<button type="submit" class="btn btn-success radius" id="on-search"><i class="Hui-iconfont"></i> 搜用户</button>
	</div>
	<div class="cl pd-5 bg-1 bk-gray mt-20"> <span class="l"><a href="javascript:;" onClick='user_list()' class="btn btn-danger radius"><i class="Hui-iconfont"></i> 批量删除</a> <a href="javascript:;" οnclick="member_add('添加用户','member-add.html','','510')" class="btn btn-primary radius"><i class="Hui-iconfont"></i> 添加用户</a></span> <span class="r">共有数据:<strong>88</strong> 条</span> </div>
	<div class="mt-20">
	<table class="table table-border table-bordered table-hover table-bg table-sort">
		<thead>
			<tr class="text-c">
				<th width="25"><input type="checkbox" name="" value=""></th>
				<th width="80">ID</th>
				<th width="100">用户名</th>
				<th width="40">性别</th>
				<th width="90">手机</th>
				<th width="150">邮箱</th>
				<th width="">地址</th>
				<th width="130">加入时间</th>
				<th width="70">状态</th>
				<th width="100">操作</th>
			</tr>
		</thead>
<!-- 		<tbody>
			<tr class="text-c">
				<td><input type="checkbox" value="1" name=""></td>
				<td>1</td>
				<td><u style="cursor:pointer" class="text-primary" οnclick="member_show('张三','member-show.html','10001','360','400')">张三</u></td>
				<td>男</td>
				<td>13000000000</td>
				<td>admin@mail.com</td>
				<td class="text-l">北京市 海淀区</td>
				<td>2014-6-11 11:11:42</td>
				<td class="td-status"><span class="label label-success radius">已启用</span></td>
				<td class="td-manage"><a style="text-decoration:none" onClick="member_stop(this,'10001')" href="javascript:;" title="停用"><i class="Hui-iconfont"></i></a> <a title="编辑" href="javascript:;" οnclick="member_edit('编辑','member-add.html','4','','510')" class="ml-5" style="text-decoration:none"><i class="Hui-iconfont"></i></a> <a style="text-decoration:none" class="ml-5" onClick="change_password('修改密码','change-password.html','10001','600','270')" href="javascript:;" title="修改密码"><i class="Hui-iconfont"></i></a> <a title="删除" href="javascript:;" οnclick="member_del(this,'1')" class="ml-5" style="text-decoration:none"><i class="Hui-iconfont"></i></a></td>
			</tr>
		</tbody> -->
	</table>
	</div>
</div>
<script type="text/javascript" src="../resources/common/lib/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript" src="../resources/common/lib/layer/2.1/layer.js"></script>
<script type="text/javascript" src="../resources/common/lib/laypage/1.2/laypage.js"></script> 
<script type="text/javascript" src="../resources/common/lib/My97DatePicker/WdatePicker.js"></script> 
<script type="text/javascript" src="../resources/common/lib/datatables/1.10.0/jquery.dataTables.min.js"></script> 
<script type="text/javascript" src="../resources/common/static/h-ui/js/H-ui.js"></script> 
<script type="text/javascript" src="../resources/common/static/h-ui.admin/js/H-ui.admin.js"></script> 
<script type="text/javascript">
    var tbl;
	$(function () {
		tbl=$('.table-sort').dataTable({
			"aaSorting": [[ 1, "desc" ]],//默认第几个排序
/* 			"bStateSave": true,//状态保存 */
			"aLengthMenu" : [ 5, 10, 15 ] , //更改显示记录数选项  	    "iDisplayLength" : 2, //默认显示的记录数
		    "bLengthChange": true,                  //是否允许用户自定义每页显示条数。
		    "bPaginate": true,                      //是否分页。
		    "bProcessing": true,                    //当datatable获取数据时候是否显示正在处理提示信息。
		    "sPaginationType": 'full_numbers',      //分页样式
		    "serverSide":true,
		    "ajax": {
		    	     url:"/wwwydl/s/usercontroller/json",
		    	     type:"get",
		             dataType: "json",
 		             data:function (d) {
 		            	d.search= d.search.value;
 		            	d.sort= d.order[0].column;
 		            	d.sort_way= d.order[0].dir;
 		                d.searchTime= $("#search").val();
 		                d.startTime= $("#datemin").val();
 		                d.endTime= $("#datemax").val();
 		             },
		             dataSrc:  
		                    function(data){                
		                      if(data.recordsTotal==null){  
		                        data.recordsTotal=0;  
		                      }  
		                      //查询结束取消按钮不可用   
		                      return data.rows;//自定义数据源,默认为data  
		                    },  
		    },
		    "retrieve":true,
		    "columns": [
		            { "data": "uid", 
		              "bSortable": false,
		              "render": function ( data, type, full, meta ) {  
		                    return '<input type="checkbox" value="'+data+'" name="">';  
		              }
		            },
		            { "data": "uid" },
		            { "data": "uid" ,"bSortable": false},
		            { "data": "username" ,"bSortable": false},
		            { "data": "username" ,"bSortable": false},
		            { "data": "username" ,"bSortable": false},
		            { "data": "username" ,"bSortable": false},
		            { "data": "userrtime" },
		            { "data": "userpassword" ,"bSortable": false},
		            { "data":  null,"bSortable": false,
		              "render": function (data, type,row) {
		            	  var id = '"' + data.uid + '"';
		            	  var html = "<a title='编辑' href='javascript:;' class='ml-5' οnclick='user_edit(\"编辑\",\"users-add.jsp\","+ id + ",\"\",\"510\")' class='ml-5' style='text-decoration:none'><i class='Hui-iconfont'></i></a>";
		            	      html+="<a style='text-decoration:none' class='ml-5' onClick='user_stop(this,"+ id + ")' href='javascript:void(0);' title='停用'><i class='Hui-iconfont'></i></a>";
		                      html+="<a style='text-decoration:none' class='ml-5' onClick='change_password(\"修改密码\",\"change-password.jsp\","+ id + ",\"600\",\"270\")' href='javascript:;' title='修改密码'><i class='Hui-iconfont'></i></a>"
		            	      return html;
		              }
		            }
		     ],
		});
        $("#on-search").click(function () {
            var oSettings = tbl.fnSettings();
            tbl.fnClearTable(0);
            tbl.fnDraw();

        });
	});
/*用户-添加*/
function user_add(title,url,w,h){
	layer_show(title,url,w,h);
}
/*用户-查看*/
function user_show(title,url,id,w,h){
	layer_show(title,url,w,h);
}
/*用户-停用*/
function user_stop(obj,id){
	layer.confirm('确认要停用吗?',function(index){
		$(obj).parents("tr").find(".td-manage").prepend('<a style="text-decoration:none" onClick="member_start(this,id)" href="javascript:;" title="启用"><i class="Hui-iconfont"></i></a>');
		$(obj).parents("tr").find(".td-status").html('<span class="label label-defaunt radius">已停用</span>');
		$(obj).remove();
		layer.msg('已停用!',{icon: 5,time:1000});
	});
}

/*用户-启用*/
function member_start(obj,id){
	layer.confirm('确认要启用吗?',function(index){
		$(obj).parents("tr").find(".td-manage").prepend('<a style="text-decoration:none" onClick="member_stop(this,id)" href="javascript:;" title="停用"><i class="Hui-iconfont"></i></a>');
		$(obj).parents("tr").find(".td-status").html('<span class="label label-success radius">已启用</span>');
		$(obj).remove();
		layer.msg('已启用!',{icon: 6,time:1000});
	});
}
/*用户-编辑*/
function user_edit(title,url,id,w,h){
    layer_show(title,url,w,h);
}
/*密码-修改*/
function change_password(title,url,id,w,h){
	layer_show(title,url,w,h);	
}
function deleteThisRowPapser(id){
	alert(id);
}
/*用户-删除*/
function member_del(obj,id){
	layer.confirm('确认要删除吗?',function(index){
		$(obj).parents("tr").remove();
		layer.msg('已删除!',{icon:1,time:1000});
	});
}
</script> 
</body>
</html>


写个接口接收数据
public DataTableResult4EU json(UsersVo usersVo){
		List<Users> list =usersService.getAllUsers(usersVo);
		logger.info("后端_用户分页显示"); 
		return ResResult.ok(list).toDataTableResult();
	}

javabean:
public class UsersVo {
	/**
	 * datatable搜索值
	 */
	private String search;	
	/**
	 * 排序id
	 */
	private int sort;
	/**
	 * 排序方式
	 */
	private String sort_way;
	
	/**
	 * 开始时间
	 */
	private String startTime;
	
	/**
	 * 结束时间
	 */
	private String endTime;
	
	/**
	 * 搜索
	 */
	private String searchTime;
	
	public String getSearch() {
		return search;
	}
	public void setSearch(String search) {
		this.search = search;
	}
	public int getSort() {
		return sort;
	}
	public void setSort(int sort) {
		this.sort = sort;
	}
	public String getSort_way() {
		return sort_way;
	}
	public void setSort_way(String sort_way) {
		this.sort_way = sort_way;
	}
	public String getStartTime() {
		return startTime;
	}
	public void setStartTime(String startTime) {
		this.startTime = startTime;
	}
	public String getEndTime() {
		return endTime;
	}
	public void setEndTime(String endTime) {
		this.endTime = endTime;
	}
	public String getSearchTime() {
		return searchTime;
	}
	public void setSearchTime(String searchTime) {
		this.searchTime = searchTime;
	}	
}


说明:
datatable传给后端的数据
columns[0][data]    0  
columns[0][name]      
columns[0][orderable]    true  
columns[0][search][regex]    false  
columns[0][search][value]      
columns[0][searchable]    true  
columns[1][data]    1  
columns[1][name]      
columns[1][orderable]    true  
columns[1][search][regex]    false  
columns[1][search][value]      
columns[1][searchable]    true  
columns[2][data]    2  
columns[2][name]      
columns[2][orderable]    true  
columns[2][search][regex]    false  
columns[2][search][value]      
columns[2][searchable]    true  
columns[3][data]    3 // data[3]  
columns[3][name]      
columns[3][orderable]    true         //可以排序  
columns[3][search][regex]    false         //搜索内容不支持正则表达式  
columns[3][search][value]    //搜索的内容  
columns[3][searchable]    true  //可以被搜索  
draw    1    //浏览器cache的编号,递增不可重复  
length    10 //预读长度= 预读页数*每页行数  
order[0][column]    0  //按第一列排序  
order[0][dir]    asc  //排序方式
search[regex]    false //搜索内容不支持正则表达式  
search[value]    //输入的搜索的内容  
start    0//起始位子,如第一页就从0开始

效果图:







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值