使用scroll:true重新加载jqgrid时发出问题,启动多个ajax调用以加载数据

时间:2011-09-20 08:54:10

标签: jqgrid

我的页面上有一个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

任何人都知道为什么会发生这种情况?

1 个答案:

答案 0 :(得分:1)

我在jqgrid创建脚本中尝试了以下参数,它解决了上述问题:

设置参数scroll:1而不是scroll:true 然后添加新参数prmNames:{npage:1}

参考:jqGridWiki:options部分: prmNames,滚动