LigerUI中通过加载服务端数据进行表格的分页显示

简介:

一 介绍

在LigerUI中显示表格是用的ligerGrid,同时我们可以通过配置url参数就可以加载远程数据并显示成表格形式。不仅如此,ligerGrid还可以进行数据的排序和分页显示:

(1)排序:需要用到“sortname”和“sortorder”这两个参数,分别表示按哪个字段排序以及排序方式,如:asc,desc

(2)分页显示:需要用到的是”Rows“:[] 和 “Total“:0这两个参数,其中Rows表示页面显示的数据集,需要用一个数组进行赋值;Total表示的是数据的总数


注:我在上一篇文章提到,实际上上面的这些参数都是定义在ligerUI/js/plugins/ligerGrid.js这个文件中,因此这些参数名我们是可以进行自定义的,具体的示例可以参考那篇文章


二 使用服务端数据分页显示示例

(1)简单的前端页面:

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
<%@ page language="java" contentType="text/html; charset=UTF-8"
     pageEncoding="UTF-8"%>
<%
     String path = request.getContextPath();
     String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
             + path + "/";
%>
< html >
< head >
< meta  http-equiv = "Content-Type"  content = "text/html; charset=UTF-8" >
< base  href="<%=basePath%>">
< title >ligerGrid Demo2</ title >
< link  href = "scripts/ligerUI/skins/Aqua/css/ligerui-all.css"
     rel = "stylesheet"  type = "text/css"  />
< script  src = "scripts/jquery/jquery-1.9.0.min.js"  type = "text/javascript" ></ script >
< script  src = "scripts/ligerUI/js/ligerui.min.js"  type = "text/javascript" ></ script >
< script  type = "text/javascript" >
     $(function() {
         
         var grid = $("#maingrid").ligerGrid({
             checkbox : true,  //每一行前面的选择框
             enabledSort : false,//排序     
             url : "loadData.json",//从服务端加载数据
             columns : [ {
                 name : 'username',
                 display : '用户名',
                 width : 200
 
             }, {
                 name : 'age',
                 display : '年龄',
                 width : 400
 
             } ],  //表格中每一列的字段
             pageSize : 10,  //默认每一页显示多少数据
             pageSizeOptions : [ 10, 20, 50, 100 ],  //每页显示多少数据下拉选择框
             width : 'auto',
             height : '95%'
         });
     });
</ script >
</ head >
< body  style = "padding: 10px" >
     < div  id = "maingrid" ></ div >
 
</ body >
</ html >

从上面的代码可以看出,使用了url这个参数请求”loadData.json”来获取数据

(2)后台处理controller:

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
package  cn.zifangsky.controller;
 
import  java.util.ArrayList;
import  java.util.HashMap;
import  java.util.List;
import  java.util.Map;
 
import  org.springframework.context.annotation.Scope;
import  org.springframework.stereotype.Controller;
import  org.springframework.web.bind.annotation.RequestMapping;
import  org.springframework.web.bind.annotation.RequestParam;
import  org.springframework.web.bind.annotation.ResponseBody;
 
@Controller
@Scope ( "prototype" )
public  class  LoadDataController {
     private  static  final  int  Total =  256 ;
 
     @RequestMapping (value =  "/loadData.json" )
     @ResponseBody
     // pagesize和page分别表示每页数据条数和当前的页码
     public  Map<String, Object> loadData( @RequestParam (value =  "pagesize" int  pagesize,
             @RequestParam (value =  "page" int  page) {
 
         List<User> lists =  new  ArrayList<User>();  // 返回数据列表
 
         int  start = pagesize * (page -  1 );  // 每一页的起始数据
         // 模拟查询一页数据并添加到返回的数据列表中
         for  ( int  i =  0 ; i < pagesize; i++) {
             int  temp = start + i;
             // 如果超过总数则跳出循环
             if  (temp < Total) {
                 User user =  new  User();
                 user.setUsername( "员工-"  + temp);
                 user.setAge(temp);
 
                 lists.add(user);
             else
                 break ;
         }
 
         Map<String, Object> result =  new  HashMap<String, Object>();
         result.put( "Rows" , lists);  // 数据集
         result.put( "Total" , Total);  // 数据的总数
 
         return  result;
     }
}

在这个controller中只定义了一个方法来处理前台的请求,并且通过获取前台传递进来的”pagesize”和”page”参数进行模拟分页查询数据,代码中有详细注释因此不多说。最后就是将数据的List集合赋值给“Rows”参数,数据总数设置了一个固定的256条


注:上面controller中使用到的实体类User:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package  cn.zifangsky.controller;
 
public  class  User {
     private  String username;
     private  int  age;
     public  String getUsername() {
         return  username;
     }
     public  void  setUsername(String username) {
         this .username = username;
     }
     public  int  getAge() {
         return  age;
     }
     public  void  setAge( int  age) {
         this .age = age;
     }
     
}

(3)显示效果:

wKioL1cc4n7B9yqQAABFm9lbgXw390.png

wKioL1cc4pPgCqnwAABgwszbPEE814.png



本文转自 pangfc 51CTO博客,原文链接:http://blog.51cto.com/983836259/1767350,如需转载请自行联系原作者

相关文章
|
4月前
|
JavaScript 前端开发
使用js生成表格标题、表格内容并且每行附带删除按钮然后插入到页面中
使用js生成表格标题、表格内容并且每行附带删除按钮然后插入到页面中
39 2
|
5月前
|
前端开发 JavaScript 数据库
分页,快捷链接表单,分页表单,常用软件开发之分页,快捷链接分页表单添加显示,可以做的分页统计,一个简单的添加页面,数据条理清晰呈现如何设计,如何修改成自己想要的,要会编写接口文档,一边写接口
分页,快捷链接表单,分页表单,常用软件开发之分页,快捷链接分页表单添加显示,可以做的分页统计,一个简单的添加页面,数据条理清晰呈现如何设计,如何修改成自己想要的,要会编写接口文档,一边写接口
|
5月前
|
前端开发
Element UI 表格常用改造(表头添加注释、翻页连续序号【内含前端分页】)
Element UI 表格常用改造(表头添加注释、翻页连续序号【内含前端分页】)
208 0
echarts插件-从后台请求的数据在页面显示空白的问题
echarts插件-从后台请求的数据在页面显示空白的问题
127 0
|
前端开发 JavaScript Java
70jqGrid - 一次性加载多级表格数据
70jqGrid - 一次性加载多级表格数据
45 0
|
JavaScript 前端开发 测试技术
Datatables展示数据(表格合并、日期计算、异步加载数据、分页显示、筛选过滤)
Datatables展示数据(表格合并、日期计算、异步加载数据、分页显示、筛选过滤)
146 0
Datatables展示数据(表格合并、日期计算、异步加载数据、分页显示、筛选过滤)
|
JavaScript 数据库
js动态添加datagrid表头&批量保存实战研究
最近小编在做项目的时候,遇到了这样一个需求:如下图所示,表头中的"一般"和"优秀"是动态添加的,添加上对应的票数之后,选中多行,单击保存,将动态添加的列数据转换成行保存到数据库中
|
资源调度 前端开发
让后台查询+表格这种页面更加快速和简便
让后台查询+表格这种页面更加快速和简便
155 0
|
Android开发
安卓中显示表格并将表格数据以excel格式导出
安卓中显示表格并将表格数据以excel格式导出
436 0
|
小程序 JavaScript
小程序后台传过来富文本内容,小程序展示文本——不用js
做项目过程中,经常遇到接口里传过来的内容是包含html标签的,但是样式又不全面,导致在小程序显示的时候,整个界面都是乱的。 这时候就要用到rich-text