使用jQuery ajax调用在gridview中显示数据太慢了

时间:2015-07-10 04:48:16

标签: jquery asp.net

我有一个gridview和一个按钮。在按钮上单击使用jQuery ajax调用将数据绑定到gridview。下面是代码。

我按照此链接中的说明进行了操作 http://www.aspdotnet-suresh.com/2012/03/bind-data-to-gridview-with-jquery-or.html

  1. 我从数据库
  2. 获取数据到DataTable
  3. 通过循环数据表的每一行
  4. 将数据表数据放入List对象
  5. 将此List返回到.cs STATIC WEBMETHOD,这也返回相同的LIST
  6. 我是.cs WEBMETHOD按钮点击jQuery ajax并将列表数据附加到gridview,如下所示。
  7. 代码:

    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "ManualReconJS.aspx/GetRemarkHistory",
        data: JSON.stringify({
            sAppId: sAppId,
            sTempl: sTempl,
            sUserId: sUserId,
            sSrno: sSrno
        }),
        cache: false,
        dataType: "json",
        beforeSend: function() {
            $("#imgModalRemarks").show();
        },
        success: function(result) {
            $('#gvRemarksHistory').empty();
    
            var tempDataHtml = "";
            if (result.d.length > 0) {
                for (var i = 0; i < result.d.length; i++) {
                    tempDataHtml = "";
                    if (i == 0) {
                        var items = result.d[i].toString().split(',');
                        tempDataHtml += "<tr>";
                        for (var j = 0; j < items.length; j++) {
                            tempDataHtml += "<th>" + items[j] + "</th>";
                        }
                        tempDataHtml += "</tr>";
                    } else {
                        var items = result.d[i].toString().split(',');
                        tempDataHtml += "<tr>";
                        for (var j = 0; j < items.length; j++) {
                            tempDataHtml += "<td>" + items[j] + "</td>";
                        }
                        tempDataHtml += "</tr>";
                    }
    
                    $("#gvRemarksHistory").append(tempDataHtml);
                }
            } else {
                $("#imgModalRemarks").hide();
                alert('Remarks history not found.');
            }
            $("#imgModalRemarks").hide();
        },
        error: function(result) {
            var err = $(result.responseText).filter('title').text();
            alert("Message: " + err);
            $("#imgModalRemarks").hide();
        }
    });
    return false;
    

    我的要求是在gridview中显示备注。当备注数据太少时,上面的代码工作得很好。我在数据量很大时遇到问题。假设我有超过10000条记录,我也实现了分页逻辑(每页1000条)。虽然页面加载显示前1000个备注,但在下一次点击时显示另外1000个这样的评论...但是每个下一个/上一个点击数据提取非常慢,每次点击我的页面都会被挂起,直到流程完成。

    请建议我获取并在网格上显示数据的最佳方法。 怎么能让它快?从数据库中获取数据非常快(以毫秒为单位) 是不是可以直接将datatable绑定到gridview?

1 个答案:

答案 0 :(得分:0)

在页面上加载大量数据时,GridView始终会变慢。基本上GridView是小数据的好选择。如果要显示大量数据,则应使用HTML表。它包含更多数据和快速加载到页面而不是GridView。 我希望你能理解我能说什么。