【发布时间】:2015-12-14 21:06:18
【问题描述】:
我正在尝试在我的 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 条记录,并且每次点击我都会加载一条记录。
当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();
});
}
}
【问题讨论】:
标签: javascript jquery asp.net ajax asp.net-mvc