我的页面上有一个jqgrid,它在初始化时加载第一页数据。如果有更多页面,则会显示滚动条。
问题是,如果我向下滚动以查看第二页然后使用更新的URL触发 reloadGrid ,它会实例化两个具有不同页码的ajax调用(1然后是2)。
结果,网格加载了针对每次调用返回的重复数据。
如果我在第一次加载时没有向下滚动,则不会出现上述问题。
jqGrid创建代码:
$("#myGrid").jqGrid({
url: 'test.do',
datatype: 'json',
mtype: 'POST',
colNames: ['', 'Item No.', 'HS Code', 'Goods Description', 'Quantity', 'Value', ''],
colModel: [{name:'itemId', index:'itemId', hidden:true},
{name:'itemNo', index:'itemNo', width:100, align:'center', sortable:false},
{name:'hsCode', index:'hsCode', width:100, align:'center', sortable:false},
{name:'goodsDesc', index:'goodsDesc', width:350, align:'left', sortable:false},
{name:'itemQuantity', index:'itemQuantity', width:110, align:'right', sortable:false},
{name:'itemValue', index:'itemValue', width:110, align:'right', sortable:false},
{name:'action', index:'action', width:60, align:'center', sortable:false}],
width: 1000,
height: 230,
rowNum: 10,
shrinkToFit: false,
viewrecords: true,
emptyrecords: "No Record Found.",
multiselect: false,
scroll: true,
jsonReader: {repeatitems:false, id:"0"}
});
使用新网址重新加载网格的代码:
newURL = 'test.do?itemNo=3';
jQuery("#myGrid").jqGrid('setGridParam',{url:newURL,datatype:'json'}).trigger("reloadGrid",[{page:1}]);
重新加载后调用AJAX:
http://abc.com/test.do?itemNo=3&page=1
http://abc.com/test.do?itemNo=3&page=2
任何人都知道为什么会发生这种情况?
答案 0 :(得分:1)
我在jqgrid创建脚本中尝试了以下参数,它解决了上述问题:
设置参数scroll:1
而不是scroll:true
然后添加新参数prmNames:{npage:1}
参考:jqGridWiki:options部分: prmNames,滚动