这两天一直在搞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分页按钮图标不显示的bug
开发中遇到的一个小问题,记录一下,如果有朋友也遇到了相同的问题,可以少走些弯路少花点时间. 如图: 分页插件使用了JqGrid,但是分页栏里出现了问题,上一页.下一页这些按钮的图标都显示为空,记得以前 ...
- jqGrid jqGrid分页参数+条件查询
HTML <div class="row"> <div class="col-sm-20"> <form id="for ...
- jqgrid 分页 (基于ashx)
1:数据库表创建并往中插入200000条数据: 复制代码 CREATE TABLE [dbo].[T_School]( [ID] [int] IDENTITY(1,1) NOT NULL, [Scho ...
- jqgrid 分页时,清空原表格数据加载返回的新数据
由于,我们是动态分页,分页后的数据是在触发分页后动态加载而来.如何使jqgrid清空原数据而加载新数据? 1)调用jqgrid的 clearGridData 方法清空表格数据 2)调用jqgrid的 ...
- 本地数据jqGrid分页
var mydata=''; $(function() { var str = ''; str += "<span>共<span id='p_total'></ ...
- Jqgrid的用法总结与分页功能的拓展
这是本人写的第一个与技术相关的博客,但是非挑战技术的,而是对工作的总结,另外加一点点拓展. Jqgrid的功能十分强大,强大到可以做到与数据grid相关的任何功能,同时由于在用的过程中总是不能够一气呵 ...
- 利用JqGrid结合ashx及EF分页显示列表之二
上一篇文章简单利用JqGrid及ashx进行一个数据列表的显示,要文的重点是利用EF的分页与JqGrid进行结合,EF本文只是简单运用所以没有很规范,重点还是JqGrid分页的实现;本实例把JqGri ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(8)-MVC与EasyUI DataGrid 分页
系列目录 前言 为了符合后面更新后的重构系统,文章于2016-11-1日重写 EasyUI Datagrid在加载的时候会提交一些分页的信息到后台,我们需要根据这些信息来进行数据分页再次返回到前台 实 ...
- jqgrid
官方主页 http://www.jqgrid.com/目前最新版本:jqGrid 3.7 Beta在线文档: http://www.secondpersonplural.ca/jqgriddocs/i ...
随机推荐
- ViewDragHelper详解(侧滑栏)
1.Drag拖拽:ViewDrag拖拽视图,拖拽控件:ViewDragHelper拖拽视图助手,拖拽操作类.利用ViewDragHelper类可以实现很多绚丽的效果,比如:拖拽删除,拖拽排序,侧滑栏等 ...
- spring boot(2)-@SpringBootApplication详解
pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spr ...
- 简单的3proxy配置
timeouts 1 5 30 60 180 1800 15 60log "D:\Program Files\3proxy-0.6.1-x64\cfg\3proxy.log" Dl ...
- python之复数
#coding=utf8 ''''' 复数是由一个实数和一个虚数组合构成,表示为:x+yj 一个负数时一对有序浮点数(x,y),其中x是实数部分,y是虚数部分. Python语言中有关负数的概念: 1 ...
- asp.net生成PDF文件(一)
这个是例子是网上淘来的,哈哈,很有用的! 首先要到网上下载itextsharp.dll,然后添加引用,主程序如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 ...
- Server runtime
spring mvc常用的注解: 个介绍. @Controller @Controller 负责注册一个bean 到spring 上下文中,bean 的ID 默认为 类名称开头字母小写,你也可以自己指 ...
- 如何理解springaop
初看aop,上来就是一大堆术语,而且还有个拉风的名字,面向切面编程,都说是oop的一种有益补充等等,一下子让你不知所措,心想着:怪不得很多人都和我说aop多难多难.当我看进去以后,我才发现:它就是一些 ...
- 沉淀,再出发:VUE的简单理解
沉淀,再出发:VUE的简单理解 一.前言 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架.Vue 只关注视图层,采用自底向上增量开发的设计.Vue 的目标是通过 ...
- iOS亮屏解锁命令【iOS自动化测试】--使用ssh
前提:iOS越狱手机一个 越狱方法:使用pp助手, 爱思助手等 1.从Cydia安装以下软件: AppSync for iOSx(可安装破解软件).afc2add补丁(可访问整个iOS设备的系统文件) ...
- 小白学CMD下运行MySQL
将mysql目录下bin目录中的mysql.exe放到C:\WINDOWS下,可以执行以下命令 连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样) ...