2015-12-14 79 views
0

我想在我的asp.net mvc5 web應用程序中通過ajax加載點擊更多記錄。但我是JavaScript的新手,我不知道如何在當前頁面等於總頁面時隱藏加載更多按鈕。隱藏加載更多記錄按鈕ASP.net MVC Ajax Javascript

javascript代碼:

function LoadMoreUR(total_pages) { 
    loadRecords(total_pages); 
} 
var page = 0; 
var _inCallback = false; 
function loadRecords(total_pages) { 
    if (page > -1 && !_inCallback) { 
     _inCallback = true; 
     page++; 
     $('div#loading').html('<p><img src="/Content/loading.gif"></p>'); 
     $.get("/UserReviews/@ViewData["DeviceID"]/" + page, function (data) { 
      if (data != '') { 
       $("#UserReviewsList").append(data); 
      } 
      else { 
       page = -1; 
      } 

      _inCallback = false; 
      $('div#loading').empty(); 
     }); 
    } 
} 

我查看

<div id="UserReviewsList"> 
     @Html.Partial("_user_reviews") 
    </div> 
    <div id="loadingbtn"> 
     <button class="btn btn-primary" id="LoadMUR" onclick="LoadMoreUR(@ViewData["TotalPages"])" >Load More</button> 
     <div id="loading"></div> 
    </div> 

如果有3條記錄的設備,和我加載每次點擊的一個記錄。 當page等於total_pages時,我想隱藏loadingbtn div。

請幫我弄清楚這一點。由於

我的解決方案(請告訴我,如果我做錯了什麼)

function LoadMoreUR(totalpages) { 
    loadProducts(totalpages); 
} 
var page = 0; 
var _inCallback = false; 
function loadProducts(totalpages) { 
    if((page + 2) == totalpages && !_inCallback) 
    { 
     $('div#loading1').empty(); 
    } 
    if (page > -1 && !_inCallback) { 
     _inCallback = true; 
     page++; 
     $('div#loading').html('<p><img src="/Content/loading.gif"></p>'); 
     $.get("/UserReviews/Index/@ViewData["DeviceID"]/" + page, function (data) { 
      if (data != '') { 
       $("#UserReviewsList").append(data); 
      } 
      else { 
       page = -1; 
      } 

      _inCallback = false; 
      $('div#loading').empty(); 
     }); 
    } 
} 

回答

2

在Ajax響應,你必須得到整個記錄數與顯示的記錄進行比較。如果你在表格中綁定,你可以得到行數。

var rowCount = $('#myTable tr').length; 

在ajax響應返回記錄數每次檢查條件隱藏按鈕。

If(rowCount == TotalRecordCount) 
{ 
$("#loadingbtn").hide() 
} 
+0

謝謝,我解決了它,並更新了我的問題與答案。 –