如何更快地创建具有子网格加载的jqgrid?

时间:2012-02-09 00:25:37

标签: javascript jquery performance jqgrid

这是我的代码示例。我遗漏了colNames和colModel,因为我知道这不是问题所在。我只是想知道是否有任何方法可以使jggrid更快地加载子网格。当该网格具有> 100条记录,相当慢。如果我删除子网格代码并在网格上放置gridview:true,它加载sooooooooooooooo要快得多,但显然,我不能有gridview:true和subgrid。有什么建议吗?

$(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
});

1 个答案:

答案 0 :(得分: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
        });
    }
}
});