我已成功通过分页从spring框架中的服务器加载数据,但我的搜索/查找记录和过滤器栏无法正常工作。
但如果我使 loadonce = true ,那么过滤器或搜索工作正常。
我的jsp代码是:
var allColumnNames=["Sr. No","contactName", "city", "country"];
var grid = jQuery('#list');
grid.jqGrid({
url:'customerData.html',
datatype: 'json',
mtype: 'GET',
loadonce: false,
colNames: allColumnNames,
colModel: [
{ name:'id', index:'id', jsonmap:"id", width:20,index:'id', search:true, stype:'int' ,hidden:true},
{ name: "contactName" ,index:'contactName', width:160, search:true, stype:'text' },
{ name: "city",index:'city', width:160, search:true, stype:'text' },
{ name: "country" ,index:'country', width:160, search:true, stype:'text' }
],
caption: 'Customer Details',
height: 'auto',
gridview: true,
rownumbers: true,
viewrecords: true,
pager: '#pager',
rowNum: 10,
rowList: [5, 10, 20, 50],
rownumbers: true
});
$("#search").click(function() {
var searchFiler = $("#filter").val(), f;
if (searchFiler.length === 0) {
grid[0].p.search = false;
$.extend(grid[0].p.postData,{filters:""});
}
f = {groupOp:"OR",rules:[]};
f.rules.push({field:"contactName",op:"cn",data:searchFiler});
f.rules.push({field:"city",op:"cn",data:searchFiler});
grid[0].p.search = true;
$.extend(grid[0].p.postData,{filters:JSON.stringify(f)});
grid.trigger("reloadGrid",[{page:1,current:true}]);
});
我是jqGrid的新手,请帮助我解决上述问题。
提前致谢!
答案 0 :(得分:0)
当你输入 loadonce = true 时,jqGrid只会生成一个获取所有数据的请求,然后如果你过滤,排序,搜索......则由前端的jqGrid控制。
但是如果 loadonce = false ,只加载此时所需的数据,每次jqGrid需要新数据时,它会向服务器发送另一个带有不同参数的请求。
所以我猜你的服务器文件" customerData.html",它还没准备好回答所有不同的问题。
这里http://trirand.com有很多jqGrid示例,其中大部分都有服务器端代码。