2011-09-20 36 views
1

我的頁面上有一個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}]'',但它沒有解決問題。 –

回答

1

我曾嘗試在jqGrid的創建腳本下面的參數,它解決了上述問題:

組參數的scroll:1代替scroll:true 再加入新的參數prmNames:{npage:1}

參考:jqGridWiki:options節:prmNames,滾動

+0

這解決了我的問題,在滾動到第2+頁並應用搜索過濾器後重置當前頁面。謝謝! –

相關問題