记录一下以作参考
SpringMVC的安装可以参考
SpringMVC3.0+rest小例子
jsp页面
<div id="_grid" style="width: 100%; * width: 99%; zoom: 1;">
<table id="list" width="100%"></table>
<div id="pager"></div>
</div>
<script>
$(function(){
$("#list").jqGrid({
url : "${pageContext.request.contextPath}/user/list",
contentType : 'application/json',
mtype : "post",
datatype : 'json',
prmNames : {search : "search"},
jsonReader : {id : "0", repeatitems : false, userdata : "userdata"},
height : "auto",
colNames : ["ID", "用户名", "全名", "状态", "是否管理员"],
colModel : [{name:"id", index:"id", hidden:true},
{name:"username", index:"username"},
{name:"fullname", index:"fullname"},
{name:"enabled", index:"enabled"},
{name:"is_admin", index:"is_admin"}],
pager : "#pager",
autoWidth : true,
rowNum : 10,
rownumbers : true,
viewrecords: true,
caption : "用户列表"
});
$(window).bind('resize', function() {
$("#list").setGridWidth($("#_grid").width() - 10);
}).trigger('resize');
jQuery("#list").jqGrid('navGrid', '#pager', {});
});
</script>
其中几个关键的属性
url :查询请求地址
datatype :返回值类型,这里使用JSON进行传递
prmNames :传递给后台的属性定义,本例中定义search:"search",如果不这么定义的话,后台接收到的将会是_search。
jsonReader :页面接收后台数据属性定义,具体参考API解释
Controller类
@RequestMapping(value="/list")
@ResponseBody
public DataResponse<User> list(@RequestParam(defaultValue="1",value="page") String page,
@RequestParam(defaultValue="20",value="rows") String rows,
@RequestParam("sidx") String sidx,
@RequestParam("sord") String sord,
@RequestParam("_search") boolean search,
@RequestParam(required=false,value="searchField") String searchField,
@RequestParam(required=false,value="searchOper") String searchOper,
@RequestParam(required=false,value="searchString") String searchString,
@RequestParam(required=false,value="filters") String filters
){
try {
DataRequest request = new DataRequest();
request.setPage(StringUtils.isEmpty(page) ? 1 : Integer.valueOf(page));
request.setRows(StringUtils.isEmpty(rows) ? 20 : Integer.valueOf(rows));
request.setSidx(sidx);
request.setSord(sord);
request.setSearch(search);
request.setSearchField(searchField);
request.setSearchOper(searchOper);
request.setSearchString(searchString);
return customSearchUtil.search(request, User.class);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
为接收前台数据,特定义了DataRequest类,其中的属性跟页面传递过来的属性一一对应
public class DataRequest implements java.io.Serializable {
private static final long serialVersionUID = 1L;
//当前页码
private int page;
//页面可显示行数
private int rows;
//用于排序的列名
private String sidx;
//排序的方式desc/asc
private String sord;
//是否是搜索请求
private boolean search;
//已经发送的请求的次数
private String nd;
}
给前台发送数据也定义了相应的DataResponse类
public class DataResponse <T> {
//需要显示的数据集
private List<T> rows;
//每页显示数量
private int page;
//数据总数
private int records;
//可显示的页数
private int total;
//自定义数据
private Map<String, Object> userdata;
}
Controller类接收数据后即传给后台service类处理并返回DataResponse对象给页面
处理方法如下
public DataResponse<T> search(DataRequest request, Class<T> cls) {
DataResponse<T> response = new DataResponse<T>();
int count;//总记录数
int limit = request.getRows() <= 0 ? 20 : request.getRows();//每页显示数量
int totalPages;//总页数
int page = request.getPage() <= 0 ? 1 : request.getPage();//当前显示页码
List<T> list;
Set<Criterion> set = initSearchCondition(request.isSearch(), request.getSearchField(), request.getSearchOper(), request.getSearchString());
count = customDao.count(cls, set);
totalPages = count / limit;
if (count % limit != 0) {
totalPages++;
}
int currPage = Math.min(totalPages, page);
int start = currPage * limit - limit;
start = start < 0 ? 0 : start;
list = customDao.list(cls, set, start, limit);
response.setRecords(count);
response.setTotal(totalPages);
response.setPage(currPage);
response.setRows(list);
return response;
}
分享到:
相关推荐
jqGrid4.2 2011-12-1最新版本
MVC4网站中集成jqGrid表格插件-示例源代码
MVC4网站中集成jqGrid表格插件-示例源代码,包含基础basecontroller,以及5个controller
jqGrid是一个非常好用的免费开源Grid组件,功能强大,适用于各种表格操作,数据管理。作为jquery插件,jqGrid使用方便,简介,美观。
jqgrid-jquery-rails 由Doc Walker认可提供为Rails 3.1+资产管道打包的jqGrid jQuery插件。安装将这些行添加到应用程序的Gemfile : # jqgrid jquery plugin packaged for the rails asset pipelinegem 'jqgrid-...
截止今天最新的程序,看好日期哟,另外截止今天官网的正式版还没有出来,请不要被骗
jquery.jqGrid-4.8.2(jquery表格插件).zip----------jqGrid4.8.2包,官网下载的,原封不动的在这里。 jqgrid_demo40-----可用的-使用方法请查看README文件. jqgrid_3.6.5_API_en.chm------附加放在这里的其它资料...
jQgrid+demo
jqGrid没有setComplexGroupHeaders方法,使用此插件实现三级分组表头功能
Spring MVC 分页组件和JqGrid导出 分页组件为通用 比较全面 jqGrid 实现导出excel功能 及行添加按钮操作
jqGrid增加时--判断开始日期与结束日期(实例代码)。需要的朋友可以过来参考下,希望对大家有所帮助
jquery.jqGrid-4.3.1+jquery-ui-1.8.17.rar
jquery.jqGrid-3.8.2.zipjquery.jqGrid-3.8.2.zipjquery.jqGrid-3.8.2.zipjquery.jqGrid-3.8.2.zipjquery.jqGrid-3.8.2.zipjquery.jqGrid-3.8.2.zip
Lib.AspNetCore.Mvc.JqGrid 一组库,它们支持和ASP.NET Core中的使用。 这是从jqGrid的相关功能ASP.NET核心演进 。 Lib.AspNetCore.Mvc.JqGrid.Infrastructure-表示jqGrid选项的类,枚举和常量。 由所有库共享。 Lib...
jqgrid-contextmenu-show-hide-columns jQGrid 具有显示/隐藏列功能(上下文菜单) 此存储库是讨论在 jqGrid 中添加显示/隐藏列功能的最佳方法的草案。 在列中添加可见性属性 右键单击标题以显示带有列复选框列表...
JqGrid 表格控件,支持树形结构,动态加载数据,可配置添加页面、修改页面; MCV版
jquery.jqGrid-4.6.0(jquery表格插件).zip----------jqGrid4.6.0包,官网下载的,原封不动的在这里。 jqgrid_demo40-----可用的-使用方法请查看README文件.rar-----------经我修改过的demo40,官网上面demo40下载...
Jqgrid demo-史上最强大,没有之一, 为了大家能够更好的学习和使用Jqgrid网格插件,我决定用Strtus2+Spring+hibernate+Jquery+Jqgrid实现一个Jqgrid网格插件的demo。当然官方网站上面已经有了PHP版本和ASP.NET版本...
NULL 博文链接:https://only-xxp.iteye.com/blog/768029
在mvc 中 应用 jqgrid技术,一个在mvc中应用 最广泛的表格插件。