在项目开发的过程中,一般都会对表格进行分页处理,大多是情况下会在项目中配置好后台分页插件,提高效率,减轻浏览器的压力。但是有时会遇到有些数据不能直接通过分页插件操作数据库进行分页数据查询,那就需要用到前端分页。DataTables分页插件就很好用,后台通过将查询好的数据封装成具体格式的数据(json),传到前台,前台通过配置DataTables插件的配置选项,对数据进行分页显示。下面为DataTables插件的使用过程:

1.引入头文件

// 引入DataTables样式文件
<link rel="stylesheet"
href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css" />
// 引入JQuery
<script type="text/javascript"
src="https://code.jquery.com/jquery-1.12.4.js"></script>
// 引入js文件
<script type="text/javascript" charset="utf8" src="http://cdn.datatables.net/1.10.16/js/jquery.dataTables.js"></script>

2.前端表格html

<table class="m-table m-table-rds" id="example2" style="text-align: center;">
<thead>
<tr>
<th style="text-align: center;">日期</th>
<th style="text-align: center;">IP总数</th>
<th style="width: 80px; text-align: center;">访问次数</th>
</tr>
</thead>
</table>

3.前端配置DataTables插件

<script>

	$(function(){
var beginDate = $('#beginDate').val();
var endDate = $('#endDate').val(); $('#example2').DataTable( {
"serverSide": true,
"aLengthMenu":[7, 15, 30],
'iDisplayLength': 7,
'order' : [0,'desc'],
searching: false,
lengthChange: true,
paging: true,
pagingType:'full_numbers',
scrollCollapse: true,
serverSide: false,
search: true,
processing: true,
/* scrollY: 500, 表格的高度限制*/
scrollX: "99.9%",
scrollXInner: "99.9%",
scrollCollapse: true,
jQueryUI: false,
autoWidth: true,
autoSearch: false,
language: {
"sProcessing": "处理中...",
"sLengthMenu": "显示 _MENU_ 项搜索结果",
"sZeroRecords": "没有匹配结果",
"sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 条记录",
"sInfoEmpty": "显示第 0 至 0 项结果,共 0 项",
"sInfoFiltered": "(由 _MAX_ 项结果过滤)",
"sInfoPostFix": "",
"sSearch": "搜索:",
"sUrl": "",
"sEmptyTable": "未搜索到数据",
"sLoadingRecords": "载入中...",
"sInfoThousands": ",",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "上页",
"sNext": "下页",
"sLast": "末页"
},
"oAria": {
"sSortAscending": ": 以升序排列此列",
"sSortDescending": ": 以降序排列此列"
}
},
ajax: {
url: "${_b}/jcnw/main/getData",
data:{beginDate:beginDate,endDate:endDate},
dataSrc:'data',
type:'post',
error: function(data) {
console.log(data);
    }
}, "columns": [
{ "data": "date" },
{ "data": "ip_num" },
{ "data": "fw_num" }
]
} ); })
</script>

4.后台controller

	@RequestMapping(value="/*/getData",method= {RequestMethod.GET,RequestMethod.POST})
public void getData(
@RequestParam(value = "beginDate", required = true) String beginDate,
@RequestParam(value = "endDate", required = true) String endDate,
HttpServletRequest request,HttpServletResponse response) throws SQLException, ParseException, IOException{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
int days = differentDaysByMillisecond(sdf.parse(endDate), sdf.parse(beginDate));
String date = beginDate;
List<Map<String, Object>> counts = new ArrayList<>();
for (int i = 0; i <= days; i++) {
Map<String, Object> count = fwtjService.getCount(date);
count.put("date", date);
date = getPastDate(date,-1);
counts.add(count);
}
JSONObject json = new JSONObject();
json.put("data",counts);
response.getWriter().write(json.toString());
}

项目中DataTables分页插件的使用的更多相关文章

  1. 浅谈Django的Q查询以及AngularJS的Datatables分页插件

    使用Q查询,首先要导入Q模块: from django.db.models import Q 可以组合使用&,|操作符用于多个Q的对象,产生一个新的Q对象,Q对象也可以用~操作符放在前面表示否 ...

  2. 项目中整合第三方插件与SpringMVC数据格式化关于ip地址

    一.Bootstrap 响应式按钮 <div calss="col-sm-2"> <button class="btn btn-default btn- ...

  3. 在vue项目中使用codemirror插件实现代码编辑器功能(代码高亮显示及自动提示

    在vue项目中使用codemirror插件实现代码编辑器功能(代码高亮显示及自动提示) 1.使用npm安装依赖 npm install --save codemirror; 2.在页面中放入如下代码 ...

  4. 实战:vue项目中导入swiper插件

    版本选择 swiper是个常用的插件,现在已经迭代到了第四代:swiper4.常用的版本是swiper3和swiper4,我选择的是swiper3. 安装 安装swiper3的最新版本3.4.2: n ...

  5. vue-cli项目中引入第三方插件

    前言 最近有小伙伴问道如何在vue-cli项目中引入第三方插件或者库,例如如果想在项目中使用jQuery中的Ajax请求数据呢?或者我想使用Bootstrap框架呢?等等这些问题,本篇博客将带你学习如 ...

  6. django项目中使用bootstrap插件的分页功能。

    官网下载bootstrap插件放到项目中的static文件中 路由 path('blog-fullwidth/', login.fullwidth,name='fullwidth'), 前端页面引入 ...

  7. 在项目中配置PageHelper插件时遇到类型转换异常

    PageHelper是一种常用的分页工具,按照常规方法在mybatis的配置文件中整合它: <?xml version="1.0" encoding="UTF-8& ...

  8. jqPaginator 项目中做分页的应用技巧

    最近做后台管理系统,分页用到的不少,项目中其实已经有分页功能的组件但是不够高度自定义,于是就找到了 jqPaginator 高度自定义的Html结构 初始化引用如下: $("#paginat ...

  9. eclipse maven项目中使用tomcat插件部署项目

    maven的tomcat插件部署web项目,我简单认为分两种,一种是部署到内置tomcat,另一种是部署到安装的tomcat. 第一种部署,默认是部署在内置tomcat的8080端口,如果不需要改端口 ...

随机推荐

  1. ios 创建自己的.a文件

    1:首先创建个 静态工程(Cocoa Touch Static Library); 方法名字,一定要暴露在.h文件中, 2:分别在模拟器环境和真机环境下 Analyze (shift+command+ ...

  2. leetcode_No.1 Two Sum

    原题: Given an array of integers, return indices of the two numbers such that they add up to a specifi ...

  3. HttpServletRequest request 获取form参数的两种方式

    @RequestMapping(value="/pay",method = RequestMethod.POST) public String buildRequest(HttpS ...

  4. 图像上采样(图像插值)增取样(Upsampling)或内插(Interpolating)下采样(降采样),

    缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的有两个:1.使得图像符合显示区域的大小:2.生成对应图像的缩略图.放大图像(或称为上采样(upsamplin ...

  5. C# 方法中的参数类型

    二.方法中的参数类型 1. 值参数 值参数是指不带修饰符只带数据类型的形参. 值参数在使用值向方法传递参数时,编译程序会把实参的值做一份拷贝,并且将此拷贝传递给该方法,被调用的方法不会修改内存中实参的 ...

  6. Unexpected token o in JSON at position 1

    ajax返回的数据已经是object格式,无需再使用“var newjsonObj = JSON.parse(jsonObj)” 进行转换.

  7. [干货分享]一篇可能会让你爱上MVVM与ReactiveCocoa的文章

    概要 在此工程中,本文将讨论将MVC改造为MVVM需要的一些基本方法,同时会适当穿插部分关于MVVM概念性的讨论!本文最大的意义在于,提供了一种读者可以复现的方式,逐步引出从MVC向MVVM尽可能平滑 ...

  8. VMware中Ubuntu开机时停在启动界面,不进入X-window的解决办法

    启动Ubuntu虚拟机时,停在这个画面不动: 试了若干次,都是这样.尝试了新建一个虚拟机然后把.vmdk文件拷过去启动,无法解决. 尝试重启,在这个界面按esc进入grub: 选择恢复模式 recov ...

  9. Ubuntu 下安装GIMP

    1.Add GIMP PPA Open terminal from Unity Dash, App launcher, or via Ctrl+Alt+T shortcut key. When it ...

  10. PHP 多参数方法的重构

    假设我们要完成一个保存文章的功能,如果采用函数编程的方式,大概会是下面这个样子: <?php function saveArticle($title, $content, $categoryId ...