我正在尝试在我的asp.net mvc5 Web应用程序中通过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条记录,我每次点击都会加载一条记录。
我想在loadingbtn
等于page
时隐藏total_pages
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();
});
}
}
答案 0 :(得分:2)
在Ajax响应中,您必须计算整个记录并与显示的记录进行比较。如果您在表中绑定,则可以获得行数。
var rowCount = $('#myTable tr').length;
在ajax响应中返回每次检查条件的数量以隐藏按钮。
If(rowCount == TotalRecordCount )
{
$("#loadingbtn").hide()
}