2015-07-10 53 views
0

我有一個gridview和一個按鈕。在按鈕上點擊使用jQuery ajax調用將數據綁定到gridview。下面是代碼。使用jQuery Ajax調用gridview中的數據顯示太慢

我跟着代碼,在這個環節上解釋 http://www.aspdotnet-suresh.com/2012/03/bind-data-to-gridview-with-jquery-or.html

  1. 我獲取數據到數據表從數據庫
  2. 通過循環的一個DataTable
  3. 返回這個每行以數據表的數據爲List對象列表爲.cs靜態WEBMETHOD,這也返回相同的列表
  4. 我是.cs WEBMETHOD按鈕點擊jQuery ajax並將列表數據添加到gridview,如下所示。

代碼:

$.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個評論,像這樣...但每下一個/預先點擊數據提取是非常非常慢,每次點擊我的頁面被絞死,直到過程完成。

請建議我提取並顯示數據到網格上的最佳方法。 如何才能讓它快速?從數據庫提取數據非常快(以毫秒爲單位) 是否無法直接將數據表綁定到gridview?

+0

在追加動態生成的html時,使用原生JavaScript,如document.getElementById('gvRemarksHistory')。appendChild(tempDataHtml);這會使它快一點jquery.append() – Gagan

+0

@ user1463065,你可以使用jQuery的虛擬滾動來解決你的問題... – User125

+0

我在這裏有另一個probelm。直到完成ajax調用我的頁面被掛起意味着我無法訪問頁面上的任何控件。如何解決此問題 – user1463065

回答

0

在頁面上加載大量數據時,GridView始終會變慢。基本上GridView是小數據的好選擇。如果你想顯示大量的數據,那麼你應該使用HTML表格。它包含更多的數據和快速加載到頁面而不是GridView。 我希望你明白我能說什麼。

+0

根據我的理解,你的意思是說,而不是gridview我需要採取html表

並追加相同的數據到表tbl – user1463065

+0

是的,你可以使用代碼創建html表。並填寫此表中的數據。 – Developer