2015-09-03 50 views
0

我正在使用jqgrid並希望在重新加載網格時發佈數據。我在重新加載時使用下面的代碼jqGrid setGridParam中的大postData

var postData = {page:page,rows:rows,submitFlag:submitFlag,newRowMapData: newRowMapData,existingRowMapData:existingRowMapData}; 
    $("#grid").jqGrid('setGridParam',{postData:null}); 
    $("#grid").jqGrid('setGridParam',{postData:postData}); 
    $("#grid").trigger("reloadGrid"); 

我在發送數據中發送完整的行數據。它適用於兩行。但是,當我選擇兩個以上的行,然後數據不會發布到服務器和網格不重新加載。是否有任何情況下,jqgrid postData不能發佈大數據到服務器。所以請建議一些解決方案。

+0

對不起,但我不明白你到底想做什麼。通常,人們不需要使用'setGridParam',因爲'getGridParam'將**參考**返回給網格的內部參數,您可以修改返回的對象。重置'postData'不能修改所有的數據,因爲在處理'reloadGrid'的時候稍後會設置一些值。此外,您不包括顯示使用jqGrid的表單的代碼。如果您使用'mtype:「GET」',則存在發佈數據的唯一限制:這是URL長度的標準限制。 – Oleg

+0

@ Oleg非常感謝Oleg的回覆。你沒有undrestand問題,但你的評論仍然給我提示,以解決我的問題。我正在研究struts2 jqgrid。不是傳統的。所以不是很用它。我在那裏設置了requestType ='POST'屬性,現在它的工作。你能否建議我如何爲網格設置PostData,正如你所建議的我的方式是不正確的。 – Man

+0

不客氣!我發佈了我的答案,我建議你也閱讀[答案](http://stackoverflow.com/a/2928819/315935)。它可能對你有幫助。我只是不確定你在哪裏可以輕鬆地在struts2中使用這個方法。 – Oleg

回答

0

首先,發佈數據的大小沒有限制,但是如果使用mtype: "GET"選項(參數將附加到URL),則存在對URL大小的限制。所以如果你需要發送postData中的大參數,你應該使用mtype: "POST"選項。

您可以設置的jqGrid的rowNum參數(不作爲postData參數的特性)和使用的reloadGridpage選項(參見the answer)。在代碼可能是

$("#grid").jqGrid("setGridParam", { 
    rowNum: rows, 
    postData: { 
     submitFlag: submitFlag, 
     newRowMapData: newRowMapData, 
     existingRowMapData: existingRowMapData 
    } 
}).trigger("reloadGrid", [{ page: page }]); 
相關問題