2012-02-09 95 views
0

這是我有的代碼的一個例子。我遺漏了colNames和colModel,因爲我知道這不是問題。我只是想知道是否有任何方法可以使jqgrid具有更快的子網格加載。當這個網格有> 100條記錄時,它相當緩慢。如果我刪除子網格代碼並在網格上放置gridview:true,則加載sooooooooooooooo的速度會快得多,但顯然,我不能有gridview:true和子網格。有什麼建議麼?我怎樣才能使一個子網格加載jqgrid更快?

$(scheduleGridName).jqGrid({ 
    url: dataURL, 
    datatype: "json", 
    mtype: 'GET', 
    colNames: [...], 
    colModel: [...], 
    height: "auto", 
    width: '100%', 
    rowNum: 2000, 
    loadonce: true, 
    jsonReader: { 
     root: "SearchResults", 
     records: "NumberOfResults", 
     repeatitems: false 
    }, 
    viewrecords: true, 
    subGrid: true, 
    subGridRowExpanded: getSubgrid 
}); 

回答

0

你有rowNum:2000.所以這是很多記錄加上每個子網格。嘗試設置rowNum:10.或者您發現加載速度足夠快的數字。如果這樣做不起作用,則考慮以不同方式顯示子網格。您可以創建一個「動作」列,其中包含指向另一個網格的鏈接以挖掘詳細信息。

此代碼示例將html添加到「Action」列。

gridComplete: function() { 
    var ids = jQuery("#grid").jqGrid('getDataIDs'); 
    for (var i = 0; i < ids.length; i++) { 
     var cl = ids[i]; 

     be = "<a href='../Company/EditUser?contactID=" + cl + "'>Edit</a></xsl:text>"; 
     jQuery("#grid").jqGrid('setRowData', ids[i], { 
      Action: be 
     }); 
    } 
} 
});