目录:

一、概述

二、Grid使用步骤

三、使用Grid展示数据

四、源码下载

一、概述

  在开发web信息管理系统时,使用Web前端框架可以帮助我们快速搭建一组风格统一的界面效果,而且能够解决大多数浏览器兼容问题,提升开发效率。比较常见的有extjs、easyui、MiniUI、JQuery UI、DWZ、Liger UI、QUI等等,这些框架中有国外的,有国内的,有收费的、也有开源免费的,他们有各自的优势,也有各自的不足。在这里给大家介绍Liger UI框架中一些常见组件的用法。

  LigerUI演示地址:http://www.ligerui.com

  LigerUI API地址:http://api.ligerui.com/

二、Grid使用步骤

  首先给大家介绍最常用的数据展示组件Grid,使用步骤如下:

  1、页面中正确引入样式文件及相应组件

  1. <link href="<%=request.getContextPath()%>/ui/lib/ligerUI/skins/Aqua/css/ligerui-all.css" rel="stylesheet" type="text/css">
  2.  
  3. <script type="text/javascript" src="<%=request.getContextPath()%>/ui/lib/jquery/jquery-1.3.2.min.js"></script>
  4. <script type="text/javascript" src="<%=request.getContextPath()%>/ui/lib/ligerUI/js/core/base.js"></script>
  5. <script type="text/javascript" src="<%=request.getContextPath()%>/ui/lib/ligerUI/js/plugins/ligerGrid.js"></script>

   2、  在body中添加div

  1. <div id="maingrid"></div>

  3、 编写js代码

  1. <script type="text/javascript">
  2. $(function(){
  3. $("#maingrid").ligerGrid({
  4. width:600,
  5. columns:[
  6. {display:"学号",name:"stuNo"},
  7. {display:"姓名",name:"stuName"},
  8. {display:"性别",name:"stuSex"},
  9. {display:"年龄",name:"stuAge"}
  10. ]
  11. });
  12. });
  13. </script>

  发布应用后可查看效果如下:

  以上只是grid简单的构建过程,下面看看如何使用grid展示数据

三、使用Grid展示数据

  ligerGrid显示数据采用 json对象,我们只需要给grid的url属性指定一个后台地址,默认情况下grid会自动发送异步请求向指定程序请求数据。注意默认情况下grid要求的json数据格式如下:

  1. {Rows:[{},{}],Total:2};

  我们可以通过指定ligerGrid的root和record属性来改变数据源属性和数据总记录属性。

  以下代码为后台加载数据的Serlvet的关键代码,如要用来构建grid需要的json格式的字符串数据。

  1. resp.setContentType("text/html;charset=utf-8");
  2. JSONObject obj = new JSONObject();
  3. List<Map<String, String>> list =initStudentData();
  4. obj.put("Rows", list);
  5. obj.put("Total", list.size());
  6. PrintWriter out = resp.getWriter();
  7. out.write(obj.toString());
  8. out.close();

  修改js代码如下:

  1. var grid=$("#maingrid").ligerGrid({
  2. width:600,
  3. columns:[
  4. {display:"学号",name:"stuNo"},
  5. {display:"姓名",name:"stuName"},
  6. {display:"性别",name:"stuSex"},
  7. {display:"年龄",name:"stuAge"}
  8. ],
  9. //值为local,数据在客户端进行分页
  10. dataAction:"local",
  11. //数据请求地址
  12. url:"main/studentServlet.action?reqCode=findStudents",
  13. //数据书否分页,默认为true
  14. usePager:true,
  15. pageSize:"8",//分页页面大小
  16. pageSizeOptions:[8,16,32]//可指定每页页面大小
  17. });

  执行效果如下:

  在这里要注意,我们在实际应用中采用的分页方式基本上都是后台分页,即在数据库中分页,这里主要是演示,直接采用了客户端分页,默认情况下dataAction的值为server即为服务器分页。

  从效果图中我们可以看到,性别列显示的内容是代码,显然不符合要求,ligerGrid为我们提供了单元格渲染器,可以帮助我们完成我们想要的效果。

  继续修改grid 列属性如下:

  1. columns:[
  2. {display:"学号",name:"stuNo"},
  3. {display:"姓名",name:"stuName"},
  4. {display:"性别",name:"stuSex",
  5. render:function(rowData){
  6. if(rowData.stuSex=="0"){
  7. return "男";
  8. }else{
  9. return "女";
  10. }
  11. }
  12. },
  13. {display:"年龄",name:"stuAge",
  14. render:function(rowData){
  15. if(parseInt(rowData.stuAge)<22){
  16. return "<span style='color:red'>"+rowData.stuAge+"</span>";
  17. }
  18. return rowData.stuAge;
  19. }
  20.  
  21. }
  22. ]

  运行程序,效果如下:

  由上可知利用render我们可以完成自定义单元格。

  当数据大用户多的时候,我们不希望用户打开页面立即显示数据,这样会服务器造成不小的压力,而是当用户输入查询条件并点击查询后,在进行加载数据。

  修改js代码如下可以实现根据输入条件加载数据:

  1. var grid=$("#maingrid").ligerGrid({
  2.  
  3. width:600,
  4. columns:[
  5. {display:"学号",name:"stuNo"},
  6. {display:"姓名",name:"stuName"},
  7. {display:"性别",name:"stuSex",
  8. render:function(rowData){
  9. if(rowData.stuSex=="0"){
  10. return "男";
  11. }else{
  12. return "女";
  13. }
  14. }
  15. },
  16. {display:"年龄",name:"stuAge",
  17. render:function(rowData){
  18. if(parseInt(rowData.stuAge)<22){
  19. return "<span style='color:red'>"+rowData.stuAge+"</span>";
  20. }
  21. return rowData.stuAge;
  22. }
  23.  
  24. }
  25. ]
  26.  
  27. });
  28.  
  29. $("#btnLoad").click(function(){
  30. var name=$("#stuname").val();
  31. grid.set({
  32. //值为local,数据在客户端进行分页
  33. dataAction:"local",
  34. //数据请求地址
  35. url:"main/studentServlet.action?reqCode=findStudents",
  36. //数据书否分页,默认为true
  37. usePager:true,
  38. pageSize:"8",//分页页面大小
  39. pageSizeOptions:[8,16,32],//可指定每页页面大小
  40. parms:[{name:"stuname",value:name}]
  41. });
  42. grid.loadData();
  43. });

  运行效果如下:

 源码下载见:百度云代码分享
作者:杰瑞教育
出处:http://www.cnblogs.com/jerehedu/ 
本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
 

LigerUI之Grid使用详解(一)——显示数据的更多相关文章

  1. LigerUI之Grid使用详解(一)——显示数据 --分页

    http://www.cnblogs.com/jerehedu/p/4218560.html 首先给大家介绍最常用的数据展示组件Grid,使用步骤如下: 1.页面中正确引入样式文件及相应组件 < ...

  2. LigerUI之Grid使用详解(三)——字典数据展示

    一.问题概述 在开发web信息管理系统时,使用Web前端框架可以帮助我们快速搭建一组风格统一的界面效果,而且能够解决大多数浏览器兼容问题,提升开发效率.在关于LigerGrid的前两篇的内容里,给大家 ...

  3. LigerUi之Grid使用详解(二)——数据编辑

    一.问题概述 在开发web信息管理系统时,使用Web前端框架可以帮助我们快速搭建一组风格统一的界面效果,而且能够解决大多数浏览器兼容问题,提升开发效率.所以上一篇文章为大家介绍了LigerGrid的显 ...

  4. css之Grid Layout详解

    css之Grid Layout详解 CSS Grid Layout擅长将页面划分为主要区域,或者在从HTML基元构建的控件的各个部分之间定义大小,位置和图层之间的关系. 与表格一样,网格布局使作者能够 ...

  5. linux dmesg命令参数及用法详解(linux显示开机信息命令)

    linux dmesg命令参数及用法详解(linux显示开机信息命令) http://blog.csdn.net/zhongyhc/article/details/8909905 功能说明:显示开机信 ...

  6. 详解vue的数据binding原理

    自从angular火了以后,各种mv*框架喷涌而出,angular虽然比较火,但是他的坑还是蛮多的,还有许多性能问题被人们吐槽.比如坑爹的脏检查机制,数据binding是受人喜爱的,脏检查就有点…性能 ...

  7. 详解Kafka: 大数据开发最火的核心技术

    详解Kafka: 大数据开发最火的核心技术   架构师技术联盟 2019-06-10 09:23:51 本文共3268个字,预计阅读需要9分钟. 广告 大数据时代来临,如果你还不知道Kafka那你就真 ...

  8. LWIP network interface 即 LWIP 的 硬件 数据 接口 移植 首先 详解 STM32 以太网数据 到达 的第一站: ETH DMA 中断函数

    要 运行  LWIP  不光 要实现  OS  的 一些 接口  ,还要 有 硬件 数据 接口 移植 ,即 网线上 来的 数据 怎么个形式 传递给  LWIP ,去解析 做出相应的 应答  ,2017 ...

  9. 002——Angular 目录结构分析、app.module.ts 详解、以及 Angular 中创建组件、组件 详解、 绑定数据

    一.目录结构分析 二. app.module.ts.组件分析 1.app.module.ts 定义 AppModule,这个根模块会告诉 Angular 如何组装该应用. 目前,它只声明了 AppCo ...

随机推荐

  1. Codeforces.314E.Sereja and Squares(DP)

    题目链接 http://www.cnblogs.com/TheRoadToTheGold/p/8443668.html \(Description\) 给你一个擦去了部分左括号和全部右括号的括号序列, ...

  2. [ZOJ3781]Paint the Grid Reloaded

    思路: 先用DFS缩点,然后BFS找出每个点出发能到达的最长路,取$min$. 注意多组数据,初始化一定要仔细,刚开始存边的$e$忘记初始化,一直WA,调了半个晚上. 一开始和网上的题解对拍$T=1$ ...

  3. BZOJ3501 : PA2008 Cliquers Strike Back

    \[\begin{eqnarray*}ans&=&m^{\sum_{i=1}^n Stirling2(n,i)\bmod 999999598}\bmod 999999599\\& ...

  4. Western Subregional of NEERC, Minsk, Wednesday, November 4, 2015 Problem G. k-palindrome dp

    Problem G. k-palindrome 题目连接: http://opentrains.snarknews.info/~ejudge/team.cgi?SID=c75360ed7f2c7022 ...

  5. 简单分享apache封IP的方法

    1. 在配置文件里设置: 打开httpd.conf编辑:<Directory “/var/www/html”>     Options Indexes FollowSymLinks    ...

  6. 关于tensorflow中tensorborad No dashboards are active for the current data set.的解决办法

    说明:这个问题,困惑了好久,在网上查了很久,一直没能解决,直到我在stackoverflow上看到有一位博主的回答 链接在这里:(https://stackoverflow.com/questions ...

  7. STL中经常使用数据结构

    STL中经常使用的数据结构: [1]  stack.queue默认的底层实现为deque结构. [2]  deque:用map管理多个size大小的连续内存块,方便头尾插入. [3]  vector: ...

  8. Revit API单位转换类

    用法:txt.Text=UnitConvertC.CovertFromAPI(param.AsDouble());param.Set(UnitConvertC.CovertToAPI(txt.Text ...

  9. 面试笔试-脚本-1:使用shell脚本输出登录次数最多的用户

    原题目: 一个文本类型的文件,里面每行存放一个登陆者的IP(某些行是反复的),写一个shell脚本输出登陆次数最多的用户. 之前刚看到这个题目时,立即没有想到一行直接解决的办法,尽管知道能够先进行排序 ...

  10. EEPLAT学习

    eeplat:Open Source Metadata PaaS 開始学习的时候仅仅是下了整个项目而且跑通,顺手在这个平台自己主动化的建立 了个管理系统,接下来開始深入研究这个开源平台 所谓元数据(m ...