使用datatables自带后台查询
前台代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
<!DOCTYPE html> < html > < head > < meta charset = "utf-8" > < link rel = "shortcut icon" type = "image/ico" href = "http://www.datatables.net/favicon.ico" rel = "external nofollow" > < meta name = "viewport" content = "initial-scale=1.0, maximum-scale=2.0" > < link rel = "stylesheet" type = "text/css" href = "../../js/DataTables-1.10.8/media/css/jquery.dataTables.css" rel = "external nofollow" > src = "../../js/DataTables-1.10.8/media/js/jquery.js" ></ script > < script type = "text/javascript" language = "javascript" src = "../../js/DataTables-1.10.8/media/js/jquery.dataTables.js" ></ script > < script type = "text/javascript" language = "javascript" class = "init" > 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(); } </ script > </ head > < body class = "dt-example" > < div > < input type = "text" id = "level1" > < input type = "button" onclick = "search1()" value = "查询" > </ div > < table id = "example" class = "display" cellspacing = "0" width = "100%" > < thead > < tr > < th >Name</ th > < th >Position</ th > </ tr > </ thead > </ table > </ body > </ html > |
Java代码如下,使用spring的 @ResponseBody将结果转换成json格式返回给前台
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
@RequestMapping(value= "/datatablesTest" , method=RequestMethod.GET) @ResponseBody public DatatablesViewPage<Alarm> 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<Alarm> list = new ArrayList<Alarm>(); 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<Alarm> view = new DatatablesViewPage<Alarm>(); view.setiTotalDisplayRecords(100); view.setiTotalRecords(100); view.setAaData(list); return view; } |
DatatablesViewPage的声明如下:
1
2
3
4
5
6
7
8
9
10
11
|
public class DatatablesViewPage<T> { private List<T> aaData; //aaData 与datatales 加载的“dataSrc"对应 private int iTotalDisplayRecords; private int iTotalRecords; public DatatablesViewPage() { } //get set方法 此处省略 } |
在后台传输数据也可以用fastjson ;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
@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 <alldata.size() ; 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<String,Object> listMap = new HashMap<String, Object>(); List<DataTableModel> list = new ArrayList<DataTableModel>(); 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); } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/lllliulin/article/details/51193004