这两天一直在搞jqGrid分页,焦头烂额,不过还是有点收获的(主要是后台分页);
 
jqGrid分页可以分为两种,远程数据(服务器数据)分页和本地数据分页,
 
 
先看远程数据分页:
 
$("#testGrid").jqGrid({
   mtype: "POST",
   datatype: "json",     //返回的是JSON格式的数据
   pager: "#userListPg", //表格分页
   rowNum: 2, // 每页多少行,用于分页
   rownumbers: true,//显示行号
   colModel  :  userCM,// 自定义
   jsonReader: {
      id : "id"  //数据唯一值,
      root: 'users',      //加载的数据
      page: 'page',       //当前页
      total: 'total',     // 很重要 定义了 后台返回的总页数名称。
      records: 'records', // 后台返回的总数据条数;     以上5个参数一定要跟后台返回的json格式数据中,名称相同
      repeatitems: false,
  },
  onPaging: function (pageBtn) {     //翻页按钮点击事件,pageBtn 与 pager(表格分页有关),为 next_ 加上分页名
      var re_page = $(this).getGridParam('page');//获取返回的当前页
      var re_rowNum = $(this).getGridParam('rowNum');//获取每页数
      if (pageBtn === "next_userListPg") {
         queryFunc(re_page, re_rowNum);
     }else if (pageBtn === "prev_userListPg") {
         queryFunc(re_page, re_rowNum);
     }else if (pageBtn === "last_userListPg") {
         queryFunc(re_total, re_rowNum);
     }else if (pageBtn === "first_userListPg") {
         queryFunc(1,  re_rowNum);
     }
  },
});
 
function queryFunc(cr_page,size) {
   //加载数据:
   $("#testGrid").jqGrid('setGridParam',{
      url: "getUsr.do",
      postData:{ page : cr_page, size : size, 'user_age' : 20}, //发送数据,查第一页,只查2条(grid rowNum),找到所有20岁的人  
  }).trigger("reloadGrid");
}
 
 
后台返回数据:
{
  page: "1",   //当前页
  total: "3"   //一共的页数
  records :"10",//总条数
  users :[
       {id:"1",user_name:"张三",age:"20",},
       {id:"2",user_name:"李四",age:"20",},
  ],
}
 
加载本地数据:
 
初始化grid:
 $("#testGrid").jqGrid({
   mtype: "POST",
   datatype: "local",     //返回的是JSON格式的数据
   pager: "#toolListPg", //表格分页
   rowNum: 2, // 每页多少行,用于分页
   rownumbers: true,//显示行号
   colModel  :  userCM,// 自定义
   onPaging: function (pageBtn) {     //翻页按钮点击事件,pageBtn 与 pager(表格分页有关),为 next_ 加上分页名
      var re_page = $(this).getGridParam('page');//获取返回的当前页
      var re_rowNum = $(this).getGridParam('rowNum');//获取每页数
      if (pageBtn === "next_userListPg") {
         queryFunc(re_page, re_rowNum);
      }else if (pageBtn === "prev_userListPg") {
         queryFunc(re_page, re_rowNum);
      }else if (pageBtn === "last_userListPg") {
          queryFunc(re_total, re_rowNum);
      }else if (pageBtn === "first_userListPg") {
         queryFunc(1,  re_rowNum);
      }
   },
});
 
 
function queryFunc(cr_page,size){
  $.aiax({
     type:"post",
     url : "getUsr.do",    
     data:{
        page: cr_page,
        size: size
        user_age :20
     },
     async:false,  //同步     
     success:function (data) {
         data = JSON.parse(data); //装换成JSON格式
         //加载数据
        $("#testGrid").jqGrid('setGridParam', {
             data :data.users,
             localReader:{
                root: function () {returndata.users},
                page: function(object){ returndata.page},
                total:function(object){ returndata.total},
                records:function(object){ returndata.records},
               repeatitems : false
             },
       }).trigger("reloadGrid");
     },
     error : function(xhr, stat, e){
        console.error(xhr);
     }
  });
}
 
本地数据:
data:{
  page: "1",   //当前页
  total: "3"   //一共的页数
  records :"10",//总条数
  users :[
       {id:"1",user_name:"张三",age:"20",},
       {id:"2",user_name:"李四",age:"20",},
  ],
}
 
 这样就能加载进去了,
 加载远程数据是异步方法,在执行过程中界面还可以操作,没有数据时没办法弹框报错
 个人更新加载本地数据,先将数据从服务器上获取再加载,加载的方法可以封装,不用每次都写

jqGrid 分页的更多相关文章

  1. JqGrid分页按钮图标不显示的bug

    开发中遇到的一个小问题,记录一下,如果有朋友也遇到了相同的问题,可以少走些弯路少花点时间. 如图: 分页插件使用了JqGrid,但是分页栏里出现了问题,上一页.下一页这些按钮的图标都显示为空,记得以前 ...

  2. jqGrid jqGrid分页参数+条件查询

    HTML <div class="row"> <div class="col-sm-20"> <form id="for ...

  3. jqgrid 分页 (基于ashx)

    1:数据库表创建并往中插入200000条数据: 复制代码 CREATE TABLE [dbo].[T_School]( [ID] [int] IDENTITY(1,1) NOT NULL, [Scho ...

  4. jqgrid 分页时,清空原表格数据加载返回的新数据

    由于,我们是动态分页,分页后的数据是在触发分页后动态加载而来.如何使jqgrid清空原数据而加载新数据? 1)调用jqgrid的 clearGridData 方法清空表格数据 2)调用jqgrid的  ...

  5. 本地数据jqGrid分页

    var mydata=''; $(function() { var str = ''; str += "<span>共<span id='p_total'></ ...

  6. Jqgrid的用法总结与分页功能的拓展

    这是本人写的第一个与技术相关的博客,但是非挑战技术的,而是对工作的总结,另外加一点点拓展. Jqgrid的功能十分强大,强大到可以做到与数据grid相关的任何功能,同时由于在用的过程中总是不能够一气呵 ...

  7. 利用JqGrid结合ashx及EF分页显示列表之二

    上一篇文章简单利用JqGrid及ashx进行一个数据列表的显示,要文的重点是利用EF的分页与JqGrid进行结合,EF本文只是简单运用所以没有很规范,重点还是JqGrid分页的实现;本实例把JqGri ...

  8. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(8)-MVC与EasyUI DataGrid 分页

    系列目录 前言 为了符合后面更新后的重构系统,文章于2016-11-1日重写 EasyUI Datagrid在加载的时候会提交一些分页的信息到后台,我们需要根据这些信息来进行数据分页再次返回到前台 实 ...

  9. jqgrid

    官方主页 http://www.jqgrid.com/目前最新版本:jqGrid 3.7 Beta在线文档: http://www.secondpersonplural.ca/jqgriddocs/i ...

随机推荐

  1. Java快速入门-04-Java.util包简单总结

    学Java的程序员,lang包和util包最好是要过一遍的. 建议大家都序下载一个离线版开发文档,查阅非常方便,我给大家提供一个中文版 jdk1.8 离线文档,查看:JAVA - JDK 1.8 AP ...

  2. Mybatis学习第四天——Mybatis与Spring整合

    主要介绍mapper配置与mapper的扫描配置,使用dao层的配置这里不多说. 1.导包 1.1 Mybatis的jar包 1.2 Spring的jar包 1.3 Spring与Mybatis整合包 ...

  3. java中方法调用在内存中的体现

    在java中,方法以及局部变量(即在方法中声明的变量)是放在栈内存上的.当你调用一个方法时,该方法会放在调用栈的栈顶.栈顶的方法是目前正在执行的方法,直到执行完毕才会从栈顶释放.我们知道,栈是一种执行 ...

  4. 关于UNITY3D的各种各样。

    作为一个老C++程序员,在接触了UNITY3D之后,除了玩C#还得玩JAVA和OBJECTIVE-C. 1年多的经验证明,UNITY3D游戏项目,如果打算做多平台,项目组里必须得有一个会多语言的万金油 ...

  5. TCP协议 状态解析和状态统计

    一.三次握手和四次挥手 1.建立连接(三次握手)   (1)服务器会处于listen状态,客户端发送一个带SYN标志的TCP报文到服务器.   (2)服务器端回应客户端的请求,这是三次握手中的第2个报 ...

  6. 规划将 IaaS 资源从经典部署模型迁移到 Azure Resource Manager

    尽管 Azure 资源管理器提供了许多精彩功能,但请务必计划迁移,以确保一切顺利进行. 花时间进行规划可确保执行迁移活动时不会遇到问题. Note 以下指导的主要参与者为 Azure 客户顾问团队,以 ...

  7. POP3、SMTP端口(SSL、TSL)

    POP3服务器地址: 110           995 支持SSLSMTP服务器地址: 25            465 或者 587 支持SSL(TSL) 465端口是SSL/TLS通讯协议的 ...

  8. Google官方教程之Selling In-app Products

    1.原文链接[需FQ]:http://developer.android.com/training/in-app-billing/index.html 2.平时对于英文文档都是大概读一下,现在翻译文章 ...

  9. 每年支付 m 次的年金

    每年支付 m 次的年金 n 表示年数.m 表示每年的付款次数.i 表示年实际利率. 一.期末付年金(annuity-immediate payable mthly): 每年支付m次, 每次的付款为1/ ...

  10. Linux服务器磁盘空间占满问题

    下面我们一起来看一篇关于Linux服务器磁盘占满问题解决(/dev/sda3 满了),希望碰到此类问题的人能带来帮助.   今天下班某电商技术部leader发现个问题,说他们服务器硬盘满了.把日志文件 ...