使用滚动重新加载jqgrid时出现问题:true,启动多个Ajax调用来加载数据

问题描述:

我的页面上有一个jqgrid,它在初始化时加载数据的第一页。如果有更多页面,则会出现滚动。使用滚动重新加载jqgrid时出现问题:true,启动多个Ajax调用来加载数据

问题是,如果我向下滚动查看第二个页面,然后使用更新的url触发reloadGrid,它实例化两个具有不同页码(1和2)的ajax调用。

结果,网格加载了针对每个调用返回的重复数据。

上面的问题没有出现,如果我没有向下滚动第一次加载。

的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"} 
}); 

代码与新的URL重装格:

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

在“jQuery(”#myGrid“)。jqGrid('setGridParam',{url:newURL,datatype:'json'})。trigger(”reloadGrid“,[{page:1}]);”删除[{page:1}]并使用reloadGrid。我认为这会起作用。 –

+0

我试过从'trigger(“reloadGrid”,[{page:1}])''中移除'[{page:1}]'',但它没有解决问题。 –

我曾尝试在jqGrid的创建脚本下面的参数,它解决了上述问题:

组参数的scroll:1代替scroll:true 再加入新的参数prmNames:{npage:1}

参考:jqGridWiki:options节:prmNames,滚动

+0

这解决了我的问题,在滚动到第2+页并应用搜索过滤器后重置当前页面。谢谢! –