JqGrid实现分页相关

jqGrid默认就提供了分页的功能,其在实现分页的时候有两个隐含的属性与后台交互及page(当前页),rows(每页显示的数据量);当请求下一页的时候请求数据头部默认包含这两个属性,如图:

Page和rows传到后台 ,后台接收。要实现分页后台必须要定义分页相关属性(Action中)

private ShowByPage pager;//一个工具类

   private String page = null;

   private String rows = null;

   private List<Person> list;

工具类ShowByPage:

package com.iflytek.bo;

import java.util.List;

import com.iflytek.pojo.Person;

public class ShowByPage {//省略getter and setter

   private String page;//当前页

   private Integer totalPage;//总页数

   private Integer totalRecords;//总记录数

   private String rows;//每页要显示的数据条目

   private List<Person>list;//显示数据源

 

 

public  Integer  getTotalPage(){

    return totalRecords % Integer.parseInt(rows)== 0 ? totalRecords 

             /Integer.parseInt(rows) : totalRecords / Integer.parseInt(rows) 

             + 1; // 计算总页数 

}

}

后台主要代码:

int totalRecord = 80;//此处定义死了,用时从数据库取

int index = (Integer.parseInt(page) - 1) * Integer.parseInt(rows);

int pageSize = Integer.parseInt(rows);

List<Person> list = GetData.getdata(index,pageSize);

pager.setPage(page);

pager.setRows(rows);

pager.setTotalRecords(totalRecord);

pager.setTotalPage(pager.getTotalPage());

pager.setList(list);

HttpServletResponse response = ServletActionContext.getResponse();

response.setContentType("text/html;charSet=UTF-8");

printWriter out = response.getWriter();

out.print(JSONUtil.serialize(pager));

out.close();

前台:

$(function(){  

             $("#grid_id").jqGrid({ 

               url:'doexecute.action?str=id', 

                mtype: 'post', 

                datatype:'json', 

                height:"auto", 

                width:600,

                loadui:"disable", 

                colNames:['姓名', '年龄', '地址'],

                colModel: [ 

                 {name:'name',index:'name', width:150, sorttype:"string",editable:true},

                 {name:'age',index:'age', width:120,sorttype:"int",editable:true},

                 {name:'address',index:'address',width:150,sorttype:"string",editable:true} 

               ],     

                 pager:'#pager', 

                 rowNum:10, 

                rowList:[10,20,30], 

                 sortname: 'name', 

                 sortorder:'asc', 

                 viewrecords:true, 

                 jsonReader:{root:"list",

                           page:"page" ,

                           total:"totalPage",

                           records:"totalRecords",

                        repeatitems : false    

                            },

                caption: '员工信息' 

              }); 

           

            

            

             jQuery("#grid_id").jqGrid('navGrid','#pager',{add:true,edit:true,view:true,del:true,search:true,refresh:true}, 

               {url:'doexecute.action?str=id' ,closeAfterEdit:true, closeOnEscape:true,left:240},  

               {url:'doexecute.action?str=id',closeAfterAdd:true, closeOnEscape:true,left:240},

               {url:'doexecute.action?str=id',closeAfterEdit:true, closeOnEscape:true,top:90, left:240, resize:false, drag:false}, 

               {url:'doexecute.action?str=id',multipleSearch:true,closeAfterSearch:true, closeOnEscape:true, sopt:['le','ge','bw']}, 

               {closeOnEscape:true, left:240}

              ); 

             

             

             

            });   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值