datatables java 分页_datatables 带查询条件java服务端分页处理实例

使用datatables自带后台查询

前台代码:

href="http://www.datatables.net/favicon.ico" rel="external nofollow" >

href="../../js/DataTables-1.10.8/media/css/jquery.dataTables.css" rel="external nofollow" >

var table;

$(document).ready(function() {

table = $('#example').DataTable( {

"pagingType": "simple_numbers",//设置分页控件的模式

searching: false,//屏蔽datatales的查询框

aLengthMenu:[10],//设置一页展示10条记录

"bLengthChange": false,//屏蔽tables的一页展示多少条记录的下拉列表

"oLanguage": { //对表格国际化

"sLengthMenu": "每页显示 _MENU_条",

"sZeroRecords": "没有找到符合条件的数据",

// "sProcessing": "<img src='./loading.gif' />",

"sInfo": "当前第 _START_ - _END_ 条 共计 _TOTAL_ 条",

"sInfoEmpty": "木有记录",

"sInfoFiltered": "(从 _MAX_ 条记录中过滤)",

"sSearch": "搜索:",

"oPaginate": {

"sFirst": "首页",

"sPrevious": "前一页",

"sNext": "后一页",

"sLast": "尾页"

}

},

"processing": true, //打开数据加载时的等待效果

"serverSide": true,//打开后台分页

"ajax": {

"url": "../../alarms/datatablesTest",

"dataSrc": "aaData",

"data": function ( d ) {

var level1 = $('#level1').val();

//添加额外的参数传给服务器

d.extra_search = level1;

}

},

"columns": [

{ "data": "total" },

{ "data": "level" }

]

} );

} );

function search1()

{

table.ajax.reload();

}

NamePosition

Java代码如下,使用spring的 @ResponseBody将结果转换成json格式返回给前台

@RequestMapping(value="/datatablesTest", method=RequestMethod.GET)

@ResponseBody

public DatatablesViewPage datatablesTest(HttpServletRequest request){

//获取分页控件的信息

String start = request.getParameter("start");

System.out.println(start);

String length = request.getParameter("length");

System.out.println(length);

//获取前台额外传递过来的查询条件

String extra_search = request.getParameter("extra_search");

System.out.println(extra_search);

//随便组织的查询结果

List list = new ArrayList();

Alarm alarm = new Alarm();

alarm.setLevel(1);

alarm.setTotal(100L);

list.add(alarm);

alarm = new Alarm();

alarm.setLevel(2);

alarm.setTotal(100L);

list.add(alarm);

DatatablesViewPage view = new DatatablesViewPage();

view.setiTotalDisplayRecords(100);

view.setiTotalRecords(100);

view.setAaData(list);

return view;

}

DatatablesViewPage的声明如下:

public class DatatablesViewPage {

private List aaData; //aaData 与datatales 加载的“dataSrc"对应

private int iTotalDisplayRecords;

private int iTotalRecords;

public DatatablesViewPage() {

}

//get set方法 此处省略

}

在后台传输数据也可以用fastjson ;

@ResponseBody

@RequestMapping("/datatable2")

public JSON getTable2(String aoData){

String sEcho = "";// 记录操作的次数 每次加1

String iDisplayStart = "";// 起始

String iDisplayLength = "";// size

String sSearch = "";// 搜索的关键字

int count = 1 ; //查询出来的数量

JSONArray alldata = JSON.parseArray(aoData);

for (int i = 0; i

JSONObject obj = (JSONObject) alldata.get(i);

if (obj.get("name").equals("sEcho"))

sEcho = obj.get("value").toString();

if (obj.get("name").equals("iDisplayStart"))

iDisplayStart = obj.get("value").toString();

if (obj.get("name").equals("iDisplayLength"))

iDisplayLength = obj.get("value").toString();

if (obj.get("name").equals("sSearch"))

sSearch = obj.get("value").toString();

}

DataTableModel u1 = new DataTableModel();

u1.setFirst_name("Airi");

u1.setLast_name("Satou");

u1.setPosition("Accountant");

u1.setOffice("Tokyo");

u1.setStart_date("28th Nov 08");

u1.setSalary("$162,700");

Map listMap = new HashMap();

List list = new ArrayList();

list.add(u1);

listMap.put("iTotalRecords",count);

listMap.put("sEcho",Integer.parseInt(sEcho)+1);

listMap.put("iTotalDisplayRecords",count);

listMap.put("aaData",list);

return (JSON)JSON.toJSON(listMap);

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持聚米学院。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用方法: 支持JAVA和PHP两种后台。 PHP:直接将WebRoot下的文件放到php服务器上直接运行即可,记得启用sqlite3。 JAVA:修改user-manage.js,将访问后台的url由"datasource.php"改为"datasource.jsp",然后将WebRoot下的文件放到tomcat下直接运行。也可使用Eclipse直接导入此项目文件。 简要说明: 使用DataTable默认的ajax交互功能,对传给后台和从后台获取的数据都有命名格式要求,这样一来耦合度较高,不利于后期扩展,不能直接适用于需要跟多种不同前端或其他业务交互的项目。本例子主要展示了自行封装请求参数和返回数据的用法,对后台的交互没有任何格式和命名限制。 基于Bootstrap 2.3.2,相关的其他插件包括图标控件FontAwesome、等待提示控件Spinjs(修改版)、弹窗控件lhgdialog(修改版) 主要展现: 封装请求参数(查询、排序、分页,不再需要data、dataFilter和dataSrc) 封装返回数据 自定义查询参数 服务器分页 自行控制和自定义遮罩效果 生成自定义效果的单元格(在线离线) 生成复选框单元格 响应复选框选择事件 生成操作按钮单元格 响应操作栏按钮点击事件 响应行点击事件 渲染回调事件(默认选中第一行) 分页栏增加跳页功能(直接修改了dataTables.bootstrap.js和dataTables.bootstrap.css) CSS实现单元格超长文字省略号显示 CSS实现单元格连续纯字母数字强制换行显示

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值