我有一個ASP.NET MVC網站,其上有2個jqGrid的網頁。他們每個人都有自己的「URL」屬性列出,所以他們都調用獨立的Ajax調用。是否可以一次填充單個ajax調用的2個jqGrid?
我想看看它有可能合併成一個單一的JSON調用一次(而不是2個獨立的呼叫)
所以不是這在我的控制每個方法
返回兩個網格的JSON這 return Json(new
{
Page = 1,
Records = GetData().Count,
Rows = GetData(),
Total = 1
});
我想看看,如果你能在一個調用返回兩個:
var grid1Data = (new
{
Page = 1,
Records = GetData().Count,
Rows = GetData(),
Total = 1
});
var grid2Data = (new
{
Page = 1,
Records = GetOtherData().Count,
Rows = GetOtherData(),
Total = 1
});
return Json(new
{
Grid1 = grid1Data, Grid2 = grid2Data
});
,但我無法弄清楚如何做到這一點的JavaScript端的工作,現在我的代碼看起來像這樣(單獨ajax調用):
$("#myGrid1").jqGrid({
mtype: "POST",
url: "/GetGrid1Data",
datatype: "json",
$("#myGrid2").jqGrid({
mtype: "POST",
url: "/GetGrid2Data",
datatype: "json",
這可能嗎?
請不要在'addRowData'方面填充網格 - 這是填充網格最慢的方法。此外,您可以在一頁中填寫所有數據*。而不是用'data'參數來創建網格。另外應該使用'gridview:true'選項。在這種情況下,網格體將在一次操作中填充,從而改善長網格的基本性能。在你的代碼中,你使用'addRowData(「」+ j,...'。*這種調用*兩個網格*會產生** id重複**,這是一個錯誤的另一個問題 – Oleg
@ Oleg.I使用addRowData ..到目前爲止,我還沒有注意到任何性能問題...通常當服務器端性能更重要時,這些步驟需要採取。第二件事爲什麼重複的id?每個網格行將有ID範圍從0-pagesize ..這是正常的在默認情況下ajax以及..雖然我張貼的代碼只是一個樣本..不要比較它從各方面測試..但提供一個解決方案路徑..這是從主要缺陷.. – Rajesh
如果你例如使用'data'和'gridview:true'選項可以添加100或1000行,其中10個列會快速填充,addRowData將會非常慢*關於重複的id:如果每個Ajax填充一個網格數據中每行都包含'id',兩個網格中'id'的值應該是*不同*在代碼中使用'「」+ j'所以「0」,「1」,「 2「,...將用作rowid。如果你要使用兩次方法(對於兩個網格),你將在**網格中都有「0」,「1」,「2」,...。因此,如果您選擇第二個網格上的第一行,則可以選擇第一個網格上的第一行。 – Oleg