zoukankan      html  css  js  c++  java
  • LigerUI之Grid使用详解(一)——显示数据 --分页

    http://www.cnblogs.com/jerehedu/p/4218560.html

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

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

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

       2、  在body中添加div

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

      3、 编写js代码

    复制代码
    <script type="text/javascript">
              $(function(){
                  $("#maingrid").ligerGrid({
                      600,
                      columns:[
                          {display:"学号",name:"stuNo"},
                          {display:"姓名",name:"stuName"},
                          {display:"性别",name:"stuSex"},
                          {display:"年龄",name:"stuAge"}
                      ]
                  });
              });
          </script>
    复制代码

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

     

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

    三、使用Grid展示数据

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

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

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

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

    复制代码
    resp.setContentType("text/html;charset=utf-8");
            JSONObject obj = new JSONObject();
            List<Map<String, String>> list =initStudentData();
            obj.put("Rows", list);
            obj.put("Total", list.size());
            PrintWriter out = resp.getWriter();
            out.write(obj.toString());
            out.close(); 
    复制代码

      修改js代码如下:

    复制代码
    var grid=$("#maingrid").ligerGrid({
                      600,
                      columns:[
                          {display:"学号",name:"stuNo"},
                          {display:"姓名",name:"stuName"},
                          {display:"性别",name:"stuSex"},
                          {display:"年龄",name:"stuAge"}
                      ],
                      //值为local,数据在客户端进行分页
                      dataAction:"local",
                      //数据请求地址
                      url:"main/studentServlet.action?reqCode=findStudents",
                      //数据书否分页,默认为true
                      usePager:true,
                      pageSize:"8",//分页页面大小
                      pageSizeOptions:[8,16,32]//可指定每页页面大小
                  });
    复制代码

      执行效果如下:

     

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

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

      继续修改grid 列属性如下:

    复制代码
    columns:[
                          {display:"学号",name:"stuNo"},
                          {display:"姓名",name:"stuName"},
                          {display:"性别",name:"stuSex",
                              render:function(rowData){
                                  if(rowData.stuSex=="0"){
                                      return "男";
                                  }else{
                                      return "女";
                                  }
                              }
                          },
                          {display:"年龄",name:"stuAge",
                              render:function(rowData){
                                  if(parseInt(rowData.stuAge)<22){
                                      return "<span style='color:red'>"+rowData.stuAge+"</span>";
                                  }
                                  return rowData.stuAge;
                              }
                          
                          }
                      ] 
    复制代码

      运行程序,效果如下:

     

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

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

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

    复制代码
      var grid=$("#maingrid").ligerGrid({
    
                      600,
                      columns:[
                          {display:"学号",name:"stuNo"},
                          {display:"姓名",name:"stuName"},
                          {display:"性别",name:"stuSex",
                              render:function(rowData){
                                  if(rowData.stuSex=="0"){
                                      return "男";
                                  }else{
                                      return "女";
                                  }
                              }
                          },
                          {display:"年龄",name:"stuAge",
                              render:function(rowData){
                                  if(parseInt(rowData.stuAge)<22){
                                      return "<span style='color:red'>"+rowData.stuAge+"</span>";
                                  }
                                  return rowData.stuAge;
                              }
                          
                          }
                      ]
                      
                  });
                  
                  $("#btnLoad").click(function(){
                      var name=$("#stuname").val();
                      grid.set({
                          //值为local,数据在客户端进行分页
                          dataAction:"local",
                          //数据请求地址
                          url:"main/studentServlet.action?reqCode=findStudents",
                          //数据书否分页,默认为true
                          usePager:true,
                          pageSize:"8",//分页页面大小
                          pageSizeOptions:[8,16,32],//可指定每页页面大小
                          parms:[{name:"stuname",value:name}]
                      });
                      grid.loadData();
                  });
    复制代码

       运行效果如下:

     

  • 相关阅读:
    1084: 计算两点间的距离(多实例测试)
    1083: 数值统计(多实例测试)
    回文数的判断
    1082: 敲7(多实例测试)
    BZOJ 1303 [CQOI2009]中位数图
    计蒜客 Yingchuan Online F题 (Floyd 变形)
    并查集入门题
    常见错点
    单调队列入门题
    线段树入门题
  • 原文地址:https://www.cnblogs.com/LuZhiYou1994/p/6808945.html
Copyright © 2011-2022 走看看