2012-02-09 59 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 
     }); 
    } 
} 
});